WordPress.org

Make WordPress Core

Ticket #40472: 40472.diff

File 40472.diff, 6.7 KB (added by MattyRob, 2 years ago)
  • src/wp-includes/class-phpmailer.php

     
    3131     * The PHPMailer Version number.
    3232     * @var string
    3333     */
    34     public $Version = '5.2.22';
     34    public $Version = '5.2.23';
    3535
    3636    /**
    3737     * Email priority.
  • src/wp-includes/class-smtp.php

     
    3030     * The PHPMailer SMTP version number.
    3131     * @var string
    3232     */
    33     const VERSION = '5.2.22';
     33    const VERSION = '5.2.23';
    3434
    3535    /**
    3636     * SMTP line break constant.
     
    8181     * @deprecated Use the `VERSION` constant instead
    8282     * @see SMTP::VERSION
    8383     */
    84     public $Version = '5.2.22';
     84    public $Version = '5.2.23';
    8585
    8686    /**
    8787     * SMTP server port number.
     
    231231                    preg_replace('/[\r\n]+/', '', $str),
    232232                    ENT_QUOTES,
    233233                    'UTF-8'
    234                 )
    235                 . "<br>\n";
     234                ) . "<br>\n";
    236235                break;
    237236            case 'echo':
    238237            default:
     
    242241                    "\n",
    243242                    "\n                   \t                  ",
    244243                    trim($str)
    245                 )."\n";
     244                ) . "\n";
    246245        }
    247246    }
    248247
     
    276275        }
    277276        // Connect to the SMTP server
    278277        $this->edebug(
    279             "Connection: opening to $host:$port, timeout=$timeout, options=".var_export($options, true),
     278            "Connection: opening to $host:$port, timeout=$timeout, options=" .
     279            var_export($options, true),
    280280            self::DEBUG_CONNECTION
    281281        );
    282282        $errno = 0;
     
    362362        }
    363363
    364364        // Begin encrypted connection
    365         if (!stream_socket_enable_crypto(
     365        set_error_handler(array($this, 'errorHandler'));
     366        $crypto_ok = stream_socket_enable_crypto(
    366367            $this->smtp_conn,
    367368            true,
    368369            $crypto_method
    369         )) {
    370             return false;
    371         }
    372         return true;
     370        );
     371        restore_error_handler();
     372        return $crypto_ok;
    373373    }
    374374
    375375    /**
     
    398398        }
    399399
    400400        if (array_key_exists('EHLO', $this->server_caps)) {
    401         // SMTP extensions are available. Let's try to find a proper authentication method
    402 
     401            // SMTP extensions are available; try to find a proper authentication method
    403402            if (!array_key_exists('AUTH', $this->server_caps)) {
    404403                $this->setError('Authentication is not allowed at this stage');
    405404                // 'at this stage' means that auth may be allowed after the stage changes
     
    424423                    $this->setError('No supported authentication methods found');
    425424                    return false;
    426425                }
    427                 self::edebug('Auth method selected: '.$authtype, self::DEBUG_LOWLEVEL);
     426                self::edebug('Auth method selected: ' . $authtype, self::DEBUG_LOWLEVEL);
    428427            }
    429428
    430429            if (!in_array($authtype, $this->server_caps['AUTH'])) {
     
    487486     * Works like hash_hmac('md5', $data, $key)
    488487     * in case that function is not available
    489488     * @param string $data The data to hash
    490      * @param string $key  The key to hash with
     489     * @param string $key The key to hash with
    491490     * @access protected
    492491     * @return string
    493492     */
     
    830829            $code_ex = (count($matches) > 2 ? $matches[2] : null);
    831830            // Cut off error code from each response line
    832831            $detail = preg_replace(
    833                 "/{$code}[ -]".($code_ex ? str_replace('.', '\\.', $code_ex).' ' : '')."/m",
     832                "/{$code}[ -]" .
     833                ($code_ex ? str_replace('.', '\\.', $code_ex) . ' ' : '') . "/m",
    834834                '',
    835835                $this->last_reply
    836836            );
     
    10421042            // Now check if reads took too long
    10431043            if ($endtime and time() > $endtime) {
    10441044                $this->edebug(
    1045                     'SMTP -> get_lines(): timelimit reached ('.
     1045                    'SMTP -> get_lines(): timelimit reached (' .
    10461046                    $this->Timelimit . ' sec)',
    10471047                    self::DEBUG_LOWLEVEL
    10481048                );
     
    11451145     * Reports an error number and string.
    11461146     * @param integer $errno The error number returned by PHP.
    11471147     * @param string $errmsg The error message returned by PHP.
     1148     * @param string $errfile The file the error occurred in
     1149     * @param integer $errline The line number the error occurred on
    11481150     */
    1149     protected function errorHandler($errno, $errmsg)
     1151    protected function errorHandler($errno, $errmsg, $errfile = '', $errline = 0)
    11501152    {
    1151         $notice = 'Connection: Failed to connect to server.';
     1153        $notice = 'Connection failed.';
    11521154        $this->setError(
    11531155            $notice,
    11541156            $errno,
     
    11551157            $errmsg
    11561158        );
    11571159        $this->edebug(
    1158             $notice . ' Error number ' . $errno . '. "Error notice: ' . $errmsg,
     1160            $notice . ' Error #' . $errno . ': ' . $errmsg . " [$errfile line $errline]",
    11591161            self::DEBUG_CONNECTION
    11601162        );
    11611163    }
    11621164
    1163         /**
    1164         * Will return the ID of the last smtp transaction based on a list of patterns provided
    1165         * in SMTP::$smtp_transaction_id_patterns.
    1166         * If no reply has been received yet, it will return null.
    1167         * If no pattern has been matched, it will return false.
    1168         * @return bool|null|string
    1169         */
    1170         public function getLastTransactionID()
    1171         {
    1172                 $reply = $this->getLastReply();
     1165    /**
     1166    * Will return the ID of the last smtp transaction based on a list of patterns provided
     1167    * in SMTP::$smtp_transaction_id_patterns.
     1168    * If no reply has been received yet, it will return null.
     1169    * If no pattern has been matched, it will return false.
     1170    * @return bool|null|string
     1171    */
     1172    public function getLastTransactionID()
     1173    {
     1174        $reply = $this->getLastReply();
    11731175
    1174                 if (empty($reply)) {
    1175                         return null;
    1176                 }
     1176        if (empty($reply)) {
     1177            return null;
     1178        }
    11771179
    1178                 foreach($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) {
    1179                         if(preg_match($smtp_transaction_id_pattern, $reply, $matches)) {
    1180                                 return $matches[1];
    1181                         }
    1182                 }
     1180        foreach ($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) {
     1181            if (preg_match($smtp_transaction_id_pattern, $reply, $matches)) {
     1182                return $matches[1];
     1183            }
     1184        }
    11831185
    1184                 return false;
     1186        return false;
    11851187    }
    11861188}