首頁  >  文章  >  後端開發  >  更換空間後wordpress 無法發送郵件?

更換空間後wordpress 無法發送郵件?

WBOY
WBOY原創
2016-12-01 00:25:561927瀏覽

  1. 問題描述

題主公司由於業務需要,將公司網站(基於wordpress開發)從香港伺服器遷移至國內伺服器,
伺服器環境由題主自己搭建,與香港伺服器相同。遷移後,發現使用者無法接受到郵件,自己嘗試寄電子郵件給自己,雖然提示成功,但還是無法收到郵件。

  1. 代碼

    <code>   <?php 
       </code>

    $to = 'xxxx@qq .com';
    $subject = 'The subject';
    $body = 'The email body content';

    //wp_mail, 發送郵件的函數,傳回布林值
    $mail = wp_mail( $to, $subject, $body);

    if (!$mail)

    <code>{
            global $ts_mail_errors;
            global $phpmailer;
                if (!isset($ts_mail_errors)) 
                    $ts_mail_errors = array();
                if (isset($phpmailer)) 
                {
                $ts_mail_errors[] = $phpmailer->ErrorInfo;
                print_r($ts_mail_errors);
                }
     }
    else echo 'email was sent!';
    </code>

    ?>

  2. 此段代碼,在香港伺服器上,和國內伺服器上,都輸出‘email was sent!’, 但是查看郵箱,僅收到香港伺服器發送過來的郵件。

求大神指導!

回覆內容:

  1. 問題描述

題主公司由於業務需要,將公司網站(基於wordpress開發)從香港伺服器遷移至國內伺服器,
伺服器環境由題主自己搭建,與香港伺服器相同。遷移後,發現使用者無法接受到郵件,自己嘗試寄電子郵件給自己,雖然提示成功,但還是無法收到郵件。

  1. 代碼

    <code>   <?php 
       </code>

    $to = 'xxxx@qq .com';
    $subject = 'The subject';
    $body = 'The email body content';

    //wp_mail, 發送郵件的函數,傳回布林值
    $mail = wp_mail( $to, $subject, $body);

    if (!$mail)

    <code>{
            global $ts_mail_errors;
            global $phpmailer;
                if (!isset($ts_mail_errors)) 
                    $ts_mail_errors = array();
                if (isset($phpmailer)) 
                {
                $ts_mail_errors[] = $phpmailer->ErrorInfo;
                print_r($ts_mail_errors);
                }
     }
    else echo 'email was sent!';
    </code>

    ?>

  2. 此段代碼,在香港伺服器上,和國內伺服器上,都輸出‘email was sent!’, 但是查看郵箱,僅收到香港伺服器發送過來的郵件。

求大神指導!

// 使用SMTP發送郵件
function mail_smtp( $phpmailer ){
$phpmailer->From = "xxx@example .com"; //寄件者
$phpmailer->FromName = "xxx"; //寄件人暱稱
$phpmailer->Host = "smtp.exmail.qq.com"; //SMTP伺服器位址
$phpmailer->Port = 465; //SMTP連接埠
$phpmailer->SMTPSecure = "ssl"; // SMTP加密方式,常用的有ssl/tls,一般25埠不填,埠465天ssl
$phpmailer->Username = "xxx@example .com"; //信箱帳號,一般和寄件人相同
$phpmailer ->Password = 'xxx'; //郵箱密碼
$phpmailer->IsSMTP(); //使用SMTP發送
$phpmailer->SMTPAuth = true; //啟用SMTPAuth服務
}
add_action('phpmailer_init',' mail_smtp');

查看了郵件的日誌,其實不是發送不出去,是被拒收了。由於mail()函數很容易被拒收,或是打到垃圾箱,採用SMTP發送郵件,是個不錯的選擇。

這肯定和空間無關,你要先檢查郵件伺服器是否正常

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn