問題的開端是這樣的,我使用Laravel開發設定SMTP使用Gmail做寄件,在本端自己的電腦都能夠正常寄件,但到了Server cPanel就怎麼都錯誤。後來還換了個寄件服務商Mailgun,還是同樣的問題產生,以為是不是可能主機的防火牆可能阻止了應用程式連接到外部 SMTP 伺服器。後來寫信給Server 服務商,回信如下。
主機無法使用外部的mail server發信。
需要使用本地主機上的mail server發信。
詳情請參詳:https://wpoki.com/?p=5663
主機商的回覆,主要需要使用主機商上的mail server做發信,因為之前也有使用主機商的mail server做發信,但是碰到的問題是發送到Gmail會被擋信,如下圖。
之前看到這個信以為是發送不出去,Mail server 有問題,就想說直接去使用外部SMTP服務可能更好吧!就沒有理他了,現在外部不給寄,只能用內部的,這才認真看了這封信件的內容,發現是DKIM和SPF的問題,也就是電子郵件驗證技術(用於防止垃圾郵件和網路釣魚攻擊),這才認真的了解如何去設定它,讓這個mail主機寄件能通過DKIM和SPF認證,就可以安全寄出郵件。cPanel 做法如連結->cPanel DKIM和SPF認證設定方法
以上碰到的問題紀錄在這邊,希望能幫助碰到同樣問題的朋友。