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