WordPress.org

Make WordPress Core

Ticket #37346: 37346.patch

File 37346.patch, 10.0 KB (added by vishalkakadiya, 4 years ago)
  • wp-mail.php

    diff --git a/wp-mail.php b/wp-mail.php
    index 07820e6..1c9bba5 100644
    a b  
    88 */
    99
    1010/** Make sure that the WordPress bootstrap has run before continuing. */
    11 require(dirname(__FILE__) . '/wp-load.php');
     11require( dirname(__FILE__) . '/wp-load.php' );
    1212
    1313/** This filter is documented in wp-admin/options.php */
    1414if ( ! apply_filters( 'enable_post_by_email_configuration', true ) )
    do_action( 'wp-mail.php' ); 
    2525require_once( ABSPATH . WPINC . '/class-pop3.php' );
    2626
    2727/** Only check at this interval for new messages. */
    28 if ( !defined('WP_MAIL_INTERVAL') )
    29         define('WP_MAIL_INTERVAL', 300); // 5 minutes
     28if ( ! defined( 'WP_MAIL_INTERVAL' ) )
     29        define( 'WP_MAIL_INTERVAL', 300 ); // 5 minutes
    3030
    31 $last_checked = get_transient('mailserver_last_checked');
     31$last_checked = get_transient( 'mailserver_last_checked' );
    3232
    3333if ( $last_checked )
    34         wp_die(__('Slow down cowboy, no need to check for new mails so often!'));
     34        wp_die( __( 'Slow down cowboy, no need to check for new mails so often!' ) );
    3535
    36 set_transient('mailserver_last_checked', true, WP_MAIL_INTERVAL);
     36set_transient( 'mailserver_last_checked', true, WP_MAIL_INTERVAL );
    3737
    38 $time_difference = get_option('gmt_offset') * HOUR_IN_SECONDS;
     38$time_difference = get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    3939
    4040$phone_delim = '::';
    4141
    4242$pop3 = new POP3();
    4343
    44 if ( !$pop3->connect( get_option('mailserver_url'), get_option('mailserver_port') ) || !$pop3->user( get_option('mailserver_login') ) )
     44if ( ! $pop3->connect( get_option( 'mailserver_url' ), get_option( 'mailserver_port' ) ) || ! $pop3->user( get_option( 'mailserver_login' ) ) )
    4545        wp_die( esc_html( $pop3->ERROR ) );
    4646
    47 $count = $pop3->pass( get_option('mailserver_pass') );
     47$count = $pop3->pass( get_option( 'mailserver_pass' ) );
    4848
    4949if( false === $count )
    5050        wp_die( esc_html( $pop3->ERROR ) );
    5151
    5252if( 0 === $count ) {
    5353        $pop3->quit();
    54         wp_die( __('There doesn’t seem to be any new mail.') );
     54        wp_die( __( 'There doesn’t seem to be any new mail.' ) );
    5555}
    5656
    5757for ( $i = 1; $i <= $count; $i++ ) {
    5858
    59         $message = $pop3->get($i);
     59        $message = $pop3->get( $i );
    6060
    6161        $bodysignal = false;
    6262        $boundary = '';
    for ( $i = 1; $i <= $count; $i++ ) { 
    6666        $content_transfer_encoding = '';
    6767        $post_author = 1;
    6868        $author_found = false;
    69         $dmonths = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
    70         foreach ($message as $line) {
     69        foreach ( $message as $line ) {
    7170                // Body signal.
    72                 if ( strlen($line) < 3 )
     71                if ( strlen( $line ) < 3 )
    7372                        $bodysignal = true;
    7473                if ( $bodysignal ) {
    7574                        $content .= $line;
    7675                } else {
    77                         if ( preg_match('/Content-Type: /i', $line) ) {
    78                                 $content_type = trim($line);
    79                                 $content_type = substr($content_type, 14, strlen($content_type) - 14);
    80                                 $content_type = explode(';', $content_type);
     76                        if ( preg_match( '/Content-Type: /i', $line ) ) {
     77                                $content_type = trim( $line );
     78                                $content_type = substr( $content_type, 14, strlen( $content_type ) - 14 );
     79                                $content_type = explode( ';', $content_type );
    8180                                if ( ! empty( $content_type[1] ) ) {
    82                                         $charset = explode('=', $content_type[1]);
    83                                         $charset = ( ! empty( $charset[1] ) ) ? trim($charset[1]) : '';
     81                                        $charset = explode( '=', $content_type[1] );
     82                                        $charset = ( ! empty( $charset[1] ) ) ? trim( $charset[1] ) : '';
    8483                                }
    8584                                $content_type = $content_type[0];
    8685                        }
    87                         if ( preg_match('/Content-Transfer-Encoding: /i', $line) ) {
    88                                 $content_transfer_encoding = trim($line);
    89                                 $content_transfer_encoding = substr($content_transfer_encoding, 27, strlen($content_transfer_encoding) - 27);
    90                                 $content_transfer_encoding = explode(';', $content_transfer_encoding);
     86                        if ( preg_match( '/Content-Transfer-Encoding: /i', $line ) ) {
     87                                $content_transfer_encoding = trim( $line );
     88                                $content_transfer_encoding = substr( $content_transfer_encoding, 27, strlen( $content_transfer_encoding ) - 27 );
     89                                $content_transfer_encoding = explode( ';', $content_transfer_encoding );
    9190                                $content_transfer_encoding = $content_transfer_encoding[0];
    9291                        }
    93                         if ( ( $content_type == 'multipart/alternative' ) && ( false !== strpos($line, 'boundary="') ) && ( '' == $boundary ) ) {
    94                                 $boundary = trim($line);
    95                                 $boundary = explode('"', $boundary);
     92                        if ( ( 'multipart/alternative' == $content_type ) && ( false !== strpos( $line, 'boundary="' ) ) && ( '' == $boundary ) ) {
     93                                $boundary = trim( $line );
     94                                $boundary = explode( '"', $boundary );
    9695                                $boundary = $boundary[1];
    9796                        }
    98                         if (preg_match('/Subject: /i', $line)) {
    99                                 $subject = trim($line);
    100                                 $subject = substr($subject, 9, strlen($subject) - 9);
     97                        if ( preg_match( '/Subject: /i', $line ) ) {
     98                                $subject = trim( $line );
     99                                $subject = substr( $subject, 9, strlen( $subject ) - 9 );
    101100                                // Captures any text in the subject before $phone_delim as the subject
    102101                                if ( function_exists('iconv_mime_decode') ) {
    103                                         $subject = iconv_mime_decode($subject, 2, get_option('blog_charset'));
     102                                        $subject = iconv_mime_decode( $subject, 2, get_option( 'blog_charset' ) );
    104103                                } else {
    105                                         $subject = wp_iso_descrambler($subject);
     104                                        $subject = wp_iso_descrambler( $subject );
    106105                                }
    107                                 $subject = explode($phone_delim, $subject);
     106                                $subject = explode( $phone_delim, $subject );
    108107                                $subject = $subject[0];
    109108                        }
    110109
    for ( $i = 1; $i <= $count; $i++ ) { 
    113112                         * otherwise use the site admin.
    114113                         */
    115114                        if ( ! $author_found && preg_match( '/^(From|Reply-To): /', $line ) ) {
    116                                 if ( preg_match('|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches) )
     115                                if ( preg_match( '|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches ) )
    117116                                        $author = $matches[0];
    118117                                else
    119                                         $author = trim($line);
    120                                 $author = sanitize_email($author);
    121                                 if ( is_email($author) ) {
    122                                         echo '<p>' . sprintf(__('Author is %s'), $author) . '</p>';
    123                                         $userdata = get_user_by('email', $author);
     118                                        $author = trim( $line );
     119                                $author = sanitize_email( $author );
     120                                if ( is_email( $author ) ) {
     121                                        echo '<p>' . sprintf( __( 'Author is %s' ), $author ) . '</p>';
     122                                        $userdata = get_user_by( 'email', $author );
    124123                                        if ( ! empty( $userdata ) ) {
    125124                                                $post_author = $userdata->ID;
    126125                                                $author_found = true;
    for ( $i = 1; $i <= $count; $i++ ) { 
    140139
    141140        // Set $post_status based on $author_found and on author's publish_posts capability
    142141        if ( $author_found ) {
    143                 $user = new WP_User($post_author);
     142                $user = new WP_User( $post_author );
    144143                $post_status = ( $user->has_cap('publish_posts') ) ? 'publish' : 'pending';
    145144        } else {
    146145                // Author not found in DB, set status to pending. Author already set to admin.
    147146                $post_status = 'pending';
    148147        }
    149148
    150         $subject = trim($subject);
     149        $subject = trim( $subject );
    151150
    152         if ( $content_type == 'multipart/alternative' ) {
    153                 $content = explode('--'.$boundary, $content);
     151        if ( 'multipart/alternative' == $content_type ) {
     152                $content = explode( '--' . $boundary, $content );
    154153                $content = $content[2];
    155154
    156155                // Match case-insensitive content-transfer-encoding.
    157                 if ( preg_match( '/Content-Transfer-Encoding: quoted-printable/i', $content, $delim) ) {
    158                         $content = explode($delim[0], $content);
     156                if ( preg_match( '/Content-Transfer-Encoding: quoted-printable/i', $content, $delim ) ) {
     157                        $content = explode( $delim[0], $content );
    159158                        $content = $content[1];
    160159                }
    161                 $content = strip_tags($content, '<img><p><br><i><b><u><em><strong><strike><font><span><div>');
     160                $content = strip_tags( $content, '<img><p><br><i><b><u><em><strong><strike><font><span><div>' );
    162161        }
    163         $content = trim($content);
     162        $content = trim( $content );
    164163
    165164        /**
    166165         * Filters the original content of the email.
    for ( $i = 1; $i <= $count; $i++ ) { 
    174173         */
    175174        $content = apply_filters( 'wp_mail_original_content', $content );
    176175
    177         if ( false !== stripos($content_transfer_encoding, "quoted-printable") ) {
    178                 $content = quoted_printable_decode($content);
     176        if ( false !== stripos( $content_transfer_encoding, "quoted-printable" ) ) {
     177                $content = quoted_printable_decode( $content );
    179178        }
    180179
    181180        if ( function_exists('iconv') && ! empty( $charset ) ) {
    182                 $content = iconv($charset, get_option('blog_charset'), $content);
     181                $content = iconv( $charset, get_option( 'blog_charset' ), $content );
    183182        }
    184183
    185184        // Captures any text in the body after $phone_delim as the body
    186         $content = explode($phone_delim, $content);
     185        $content = explode( $phone_delim, $content );
    187186        $content = empty( $content[1] ) ? $content[0] : $content[1];
    188187
    189         $content = trim($content);
     188        $content = trim( $content );
    190189
    191190        /**
    192191         * Filters the content of the post submitted by email before saving.
    for ( $i = 1; $i <= $count; $i++ ) { 
    197196         */
    198197        $post_content = apply_filters( 'phone_content', $content );
    199198
    200         $post_title = xmlrpc_getposttitle($content);
     199        $post_title = xmlrpc_getposttitle( $content );
    201200
    202         if ($post_title == '') $post_title = $subject;
     201        if ( '' == $post_title ) $post_title = $subject;
    203202
    204         $post_category = array(get_option('default_email_category'));
     203        $post_category = array( get_option( 'default_email_category' ) );
    205204
    206         $post_data = compact('post_content','post_title','post_date','post_date_gmt','post_author','post_category', 'post_status');
    207         $post_data = wp_slash($post_data);
     205        $post_data = compact( 'post_content', 'post_title', 'post_date', 'post_date_gmt', 'post_author', 'post_category', 'post_status' );
     206        $post_data = wp_slash( $post_data );
    208207
    209         $post_ID = wp_insert_post($post_data);
     208        $post_ID = wp_insert_post( $post_data );
    210209        if ( is_wp_error( $post_ID ) )
    211210                echo "\n" . $post_ID->get_error_message();
    212211
    for ( $i = 1; $i <= $count; $i++ ) { 
    226225        echo "\n<p><strong>" . __( 'Author:' ) . '</strong> ' . esc_html( $post_author ) . '</p>';
    227226        echo "\n<p><strong>" . __( 'Posted title:' ) . '</strong> ' . esc_html( $post_title ) . '</p>';
    228227
    229         if(!$pop3->delete($i)) {
     228        if ( ! $pop3->delete( $i ) ) {
    230229                echo '<p>' . sprintf(
    231230                        /* translators: %s: POP3 error */
    232231                        __( 'Oops: %s' ),
    for ( $i = 1; $i <= $count; $i++ ) { 
    244243
    245244}
    246245
    247 $pop3->quit();
     246$pop3->quit();
     247 No newline at end of file