在上線django 項(xiàng)目遇到在本地window系統(tǒng)可以實(shí)現(xiàn)正常的郵件發(fā)送艾扮,但部署到centos7上的時(shí)候,郵件發(fā)送模塊一直無法實(shí)現(xiàn),并報(bào)socket錯(cuò)誤云头。本以為是防火墻問題,于是將防火墻關(guān)掉淫半,使用的命令是:systemctl stop friewall.server 但還是一樣報(bào)錯(cuò)溃槐,檢查25端口,并未發(fā)現(xiàn)端口被關(guān)閉科吭。于是用python調(diào)用smtplib寫一個(gè)發(fā)送郵件的測試腳本昏滴,調(diào)用的仍然是SMTP()。本地測試正常对人,能發(fā)送郵件谣殊,但放到服務(wù)器上,使用python mailtest.py 一樣報(bào)socket錯(cuò)誤牺弄。查網(wǎng)上資料姻几,提示smtplib調(diào)用smtp_ssl()能解決問題,于是嘗試用smtplib_ssl() ,sslport從網(wǎng)上查得知猖闪,一般25端口的sslport是465
嘗試修改為如下:
再次上傳到服務(wù)器鲜棠,使用python +文件名净当,這次顯示OK! 郵箱也正常收到郵件斋泄。原來在linux上對發(fā)送的加密要求更嚴(yán)格,需要使用更安全的SMTP_SSL()進(jìn)行郵箱傳輸認(rèn)證沛慢。具體原因吵护,待找時(shí)間認(rèn)證查看原理盒音。附參考鏈接:https://segmentfault.com/q/1010000007661948
補(bǔ)充:在django項(xiàng)目部署中即便將項(xiàng)目的setting.py文件中郵件傳輸改成-SSL也無法發(fā)送郵件表鳍,需要修改django的全局setting.py, django全局文件查看方法:
參考鏈接:http://blog.csdn.net/Cryhelyxx/article/details/42552411
找到django全局文件所在位置后,進(jìn)入找到global_settings.py 使用vi global_settings.py
打開后在郵件模塊進(jìn)行修改:
如圖修改后祥诽,在Centos上就可以正常發(fā)送了
2017.10.06