一個郵件發送問題,整整弄了我一周時間,起因是這樣的,之前弄的一個網站,需要在郵箱里面認證之后才可以注冊成功。網站上線了差不多一年之后,客戶突然跟我說,網站不能注冊了,然后我就查看了一下代碼。
發現報這個錯誤:SMTP -> ERROR: Failed to connect to server: Connection timed out (110) smtp connect() failed;
這是我的配置。
然后我就想,之前都是可以用的,那會不會可能是客戶在郵箱里面更改客戶端密碼呢?然后我就重新弄了一個放上去,結果還是不行。
然后看到網上有一個說,看下是不是防火牆沒關,被防火牆攔住了,結果發現關閉防火牆還是沒用。
還有一個 在這里http://drupal.org/node/805834 看13樓
然后按照 http://blog.csdn.net/Java2coder/article/details/42751377 這里面的這位仁兄的修改方法。把$mail->host 換上了ipv4,結果還是不行。
其他的方法也試過,例如http://blog.csdn.net/dongsg11200/article/details/16343211 這里面的,
在 class.phpmailer.php 中,將
function IsSMTP() {
$this->Mailer = 'smtp';
}
改成:
function IsSMTP() {
$this->Mailer = 'SMTP';
}
但是我的還是不行。
然后請教我認識的一個大神,他幫我在服務器里面調試(服務器是Linux,作為小白的還沒懂。),然后他發現
服務器ping騰訊郵箱(客戶用的是騰訊企業郵箱)ping不通,但是其他的例如163什么的都可以。
然后我就叫客戶找服務器客服。
客服給出的結果是:
然后我域名解析了一個
之后
配置改成了這樣,結果
報錯為無法連接服務器了。然后繼續找客服,終於給了這個回復。
改了我的配置,如圖:
終於成功解決了。
(第一次寫技術貼,如有冒犯或不當,請大家原諒。)