Make WordPress Core

Ticket #23578: 23578.2.diff

File 23578.2.diff, 1.8 KB (added by SergeyBiryukov, 7 years ago)
  • src/wp-includes/pluggable.php

     
    365365                return false;
    366366        }
    367367
    368         // Set mail's subject and body
    369         $phpmailer->Subject = $subject;
    370         $phpmailer->Body    = $message;
    371 
    372368        // Set destination addresses, using appropriate methods for handling addresses
    373369        $address_headers = compact( 'to', 'cc', 'bcc', 'reply_to' );
    374370
     
    414410
    415411        // Set Content-Type and charset
    416412        // If we don't have a content-type from the input headers
    417         if ( !isset( $content_type ) )
     413        if ( ! isset( $content_type ) ) {
    418414                $content_type = 'text/plain';
     415        }
    419416
    420417        /**
    421418         * Filters the wp_mail() content type.
     
    429426        $phpmailer->ContentType = $content_type;
    430427
    431428        // Set whether it's plaintext, depending on $content_type
    432         if ( 'text/html' == $content_type )
     429        if ( 'text/html' == $content_type ) {
    433430                $phpmailer->IsHTML( true );
    434431
     432                if ( false !== strpos( $message, "\r\n" ) && false === strpos( $message, '<br' ) ) {
     433                        $message = nl2br( $message );
     434                }
     435
     436                $message = preg_replace( '/<(http.*?)>/', '<a href="$1">$1</a>', $message );
     437        }
     438
    435439        // If we don't have a charset from the input headers
    436         if ( !isset( $charset ) )
     440        if ( ! isset( $charset ) ) {
    437441                $charset = get_bloginfo( 'charset' );
     442        }
    438443
    439         // Set the content-type and charset
    440 
    441444        /**
    442445         * Filters the default wp_mail() charset.
    443446         *
     
    447450         */
    448451        $phpmailer->CharSet = apply_filters( 'wp_mail_charset', $charset );
    449452
     453        // Set mail's subject and body
     454        $phpmailer->Subject = $subject;
     455        $phpmailer->Body    = $message;
     456
    450457        // Set custom headers
    451458        if ( !empty( $headers ) ) {
    452459                foreach ( (array) $headers as $name => $content ) {