django項目部署服務器后無法發送郵箱 錯誤信息:Connection unexpectedly closed


使用配置:

  python 3.7 +

  django 2.2.1

    發送郵件模塊 :  from django.core.mail import send_mail 

  服務器:Centos7 阿里雲輕量級服務器

 

本地測試使用的時候用的是 25 端口,沒有任何問題,但是放到服務器上就會無法使用

問題原因:

  根據阿里雲官方解釋為:

  因服務器的25端口默認封閉,需要使用SSL加密端口(通常是465)來對外發信,調用的郵箱服務器需要支持SSL加密。

 

解決方案(修改配置):

注意: EMAIL_USE_SSL 和 EMAIL_USE_TLS  兩個不能同時為True

1. 服務器 settings.py 配置 ( 記得在防火牆添加 465 端口 )

# 發送郵箱驗證碼
EMAIL_HOST = "smtp.163.com"     # 服務器
EMAIL_PORT = 465                 # 一般情況下都為25, 服務器為 465
EMAIL_HOST_USER = "xxx@163.com"     # 賬號
EMAIL_HOST_PASSWORD = "xxx"          # 密碼(這里是你的授權碼)
EMAIL_USE_SSL = True            # 這里未配置為True也會觸發異常
EMAIL_FROM = "xxx@163.com"      # 郵箱來自

 

2. 本地 settings.py 配置

# 發送郵箱驗證碼
EMAIL_HOST = "smtp.163.com"     # 服務器
EMAIL_PORT = 25                 # 一般情況下都為25 , 465, 587
EMAIL_HOST_USER = "xxx@163.com"     # 賬號
EMAIL_HOST_PASSWORD = "xxx"          # 密碼(這里是你的授權碼)
EMAIL_USE_TLS = False       # 一般都為False
EMAIL_FROM = "xxx@163.com"      # 郵箱來自

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM