2023-06-02

[PHP 5.x]PHPMailer升級TLS1.2

這幾天為了替公司省錢,捨身跳進PHP的坑裡幫廠商救火XD 這個案子是用PHP 5.6、YiiMailer 1.6(include PHPMailer 5.2.8)開發,環境為AWS UBUNTU、Nginx,用途是讓指定品牌透過網站問券方式預約免費膚質檢測服務。這次發生的問題是當用戶填完問券,按下確認時系統卻無法發信,並回傳錯誤訊息:SMTP connect() failed.

最直覺當然是直接先把問題丟給ChatGPT,我也按照他的建議逐一排查,雖然沒有直接解決我的問題,但也讓我更認識我們家的Server環境。由於不只一個活動網站架在這個Server上,甚至不同品牌合作的廠商所使用的PHP版本也不一致。為了避免讓同事等待太久又不一定能解決(幫自己留後路XD),所以我首先請同事直接請原廠商為專案升級PHP版本報價。

在他去請廠商報價的同時,我用了以下方法排查:

一、Telnet (正常)

telnet smtp.office365.com 587
顯示正常:
220 SI1PR02CA0000.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mon, 29 May 2023 05:09:46 +0000