阿里云腾讯云部署Django项目发送邮件时,端口25,465,587上的坑

在将Django项目部署到阿里云时,遇到25端口被封导致邮件发送失败的问题。尝试更换为465端口后仍报错,最终发现587端口配合TLS设置可以成功发送邮件。总结经验,部署时需注意服务器对端口的限制,并确保邮件服务商支持所选端口。
摘要由CSDN通过智能技术生成

今天在往阿里云上部署Django项目时,遇到一个端口的坑,花了半天终于找到问题所在。

在Django项目中,发送邮件需要在settings.py中做如下的设置:

EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'xxxx@qq.com'
EMAIL_HOST_PASSWORD = 'xxxxx'
SERVER_HOST = '127.0.0.1'
SERVER_PORT = '8000'


在本机上这个设置是没有问题的,最后调用send_mail()也能把邮件发送出去。

但是当这么部署到阿里云上时,25端口因为被阿里云封了,所以没法使用。网页上会提示504错误。

一开始想改成465端口,把settings中的设置改成:

EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxxx@qq.com'
EMAIL_HOST_PASSWORD = 'xxxx'
EMAIL_USE_SSL = True
SERVER_HOST = 'xxx.xx.xxx.xx'
SERVER_PORT = '80'


但是在send_mail()发送邮件时会直接报server error 500错误。后来想是不是465端口也被封了,只好改成587端口试试。配置变成:

EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'xxxx@qq.com'
EMAIL_HOST_PASSWORD = 'xxxx'
EMAIL_USE_TLS = True
SERVER_HOST = 'xxx.xx.xxx.xx'
SERVER_PORT = '80'


换成这个配置以后,发送邮件功能成功!!!

总结:

亲身经历:在腾讯云服务器上部署django项目,遇到注册邮件发送不成功的问题,原因是写了25端口,后面改用465端口就可以成功发送了,大坑!!!!!!!!!!

        遇到这种情况首先要保证在本机上调试时代码是正确的,功能能成功,那么以后部署时出错,问题应该就出在设置上。

        在部署时出错,经过查找发现问题出在send_mail()这条上,那么就围绕它解决。

        有些公司的服务器对端口有限制,所以就只能查资料,然后25-465-587一个一个试下去。当然,这也要你的mail host支持这些端口,有些就不支持587。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只要思想不滑坡办法总比困难多--小鱼干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值