phpcms發送郵件失敗怎么辦?解決phpcms郵件無法發送?
網站放到服務器上時,發現了一個很大的問題,什么問題呢?
在本地能夠完美使用的郵箱服務居然不能使用了,這使得小編百思不得其解,在網上瘋狂的找解決辦法,結果發現一個有用的都沒有。
最后沒辦法了,問了問服務器商,發現fsockopen函數是沒被禁用的(這個函數是phpcms發郵件十分重要的一個函數),最后調出phpcms的錯誤日志(phpcms的錯誤日志為error_log.php文件)來看(錯誤日志的位置為:根目錄/caches/error_log.php),發現每點一次發送郵件,錯誤日志就會多出同一個錯誤(fsockopen(): unable to connect to smtp.163.com:25 (Connection timed out))。
這句話的原意是無法連接到郵件地址的25端口(小編這里使用的郵件服務器是163的),換句話說就是服務器禁止25端口。
立即學習“PHP免費學習筆記(深入)”;
小編這里使用的是阿里云服務器,經過和服務器商的討論發現,阿里云服務器默認禁止郵件的25端口,要開通還要申請,非常的麻煩,還不一定通過。
小編于是就換成了465端口,因為465端口服務器沒禁止。可是單單的把phpcms后臺的郵件發送端口改成465也不能發送郵件,那又如何更改呢?
其實很簡單的,在郵件服務器那行改成:ssl://smtp.163.com(這里可以換成QQ的,新浪的,但是前面的ssl://別忘了),這樣就行了。
怎么樣有沒有幫助到你們呢?其實想要在阿里服務器上發任何郵件都是不能使用25端口的喲,如果用了請改成465就好了,對了別忘記驗證密碼就是客戶端授權密碼,郵件設置測試就是接受郵件的郵箱地址。
PHP中文網,大量的免費PHPCMS教程,歡迎在線學習!