使用配置:
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" # 郵箱來自