這個問題是我剛剛遇到的,之前也做過多個發送郵件的應用,但是沒有遇到這樣的情況,近期,運營部門搞了一個活動,平臺註冊了大量的用戶,下午同事反饋說發送郵件提示接口錯誤。趕緊看看情況。
阿里雲
基礎情況
1、阿里雲伺服器
2、PHPMailer擴展
3、163郵箱提供SMTP服務
4、本地測試可以發送,生產環境異常(開發環境可以發送)
出現問題
生產環境發送郵件接口出現504加載超時問題
解決方案
使用SSL協議並將埠調整為465埠。下面詳細說一下。
1、阿里雲伺服器上放行465埠(入網);
2、代碼中增加如下代碼設置:
$mail->SMTPSecure = 'ssl';$mail->Port = 465;
問題分析
504狀態碼的出現,首先進行了本地環境測試,發現可以正常發送郵件。那麼,可以考慮代碼沒有問題,在環境方面,考慮了兩點,分別是伺服器安全環境和PHP環境。首先是做了伺服器環境的檢查。因為PHP環境在每次的應用中都未進行特殊的設置。所以把PHP環境的檢查放在了後面。同時也查閱了網上的資料,大家都在談論埠的問題。
1、25埠已經關閉了(國內的雲服務商都關閉了這個埠);
2、使用465埠,還有兄弟說使用487埠的;
3、使用SSL進行服務;
按照各位大神的經驗,檢查伺服器埠和設置SSL。果然,可以發送郵件了,並且發送的速度是非常快的。這裡為各位前輩點個讚!