阿里云服务器部署发送邮件的问题

django自带发邮件模块:
from django.core.mail import send_mail

本地测试使用的是25端口,可以正常发送邮件,但是部署到阿里云服务器上却不能发送

官方解释:

因为服务器的25端口是默认关闭的,需要使用SSL加密端口(通常是465)来对外发送邮件,调用的邮件服务器需要支持SSL加密。

解决方案:

因此我们就需要将本地设置的25端口改为465端口,同时要注意:EMAIL_USE_SSL和EMAIL_USE_TLS不能同时为True。要将EMAIL_USE_SSL设置为True

本地配置:

1
2
3
4
5
EMAIL_HOST = 'smtp.qq.com'  # 发送邮件的stmp服务器
EMAIL_PORT = 25 # stmp协议的端口号
EMAIL_USE_TLS = True # 是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。)
# SSLError [SSL:UNKNOWN_PROTOCOL] unknow如果出现,就将EMAIL_USE_SSL置为False
EMAIL_USE_SSL = False # 使用安全ssl加密,qq企业邮箱要求使用

服务器部署:

1
2
3
EMAIL_HOST = 'smtp.qq.com'  # 发送邮件的stmp服务器
EMAIL_PORT = 465 # 搭配SSL
EMAIL_USE_SSL = True# 使用安全ssl加密,qq企业邮箱要求使用

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!