問題描述
題主公司由於業務需要,將公司網站(基於wordpress開發)從香港伺服器遷移至國內伺服器,
伺服器環境由題主自己搭建,與香港伺服器相同。遷移後,發現使用者無法接受到郵件,自己嘗試寄電子郵件給自己,雖然提示成功,但還是無法收到郵件。
代碼
<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>
?>
此段代碼,在香港伺服器上,和國內伺服器上,都輸出‘email was sent!’, 但是查看郵箱,僅收到香港伺服器發送過來的郵件。
求大神指導!
問題描述
題主公司由於業務需要,將公司網站(基於wordpress開發)從香港伺服器遷移至國內伺服器,
伺服器環境由題主自己搭建,與香港伺服器相同。遷移後,發現使用者無法接受到郵件,自己嘗試寄電子郵件給自己,雖然提示成功,但還是無法收到郵件。
代碼
<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>
?>
此段代碼,在香港伺服器上,和國內伺服器上,都輸出‘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發送郵件,是個不錯的選擇。
這肯定和空間無關,你要先檢查郵件伺服器是否正常