阿里云Django部署发送QQ邮件关于25、465、587端口的坑

59 篇文章 3 订阅

写在最前面:

 

想在我阿里云部署的服务器上使用Django自带的发送邮件的功能,我选择发送QQ邮件。

 

第一步配置Settings

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '1524126437@qq.com'
EMAIL_HOST_PASSWORD = 'xxxxxxxxxxx'
EMAIL_FROM = '1524126437@qq.com'

注意这个password不是你的qq邮箱密码,而是授权码

 

第二步写个函数发送

def sendemail(request):
    email_title = '邮件标题'
    email_body = '邮件内容'
    email = '1524126437@qq.com'  # 对方的邮箱
    send_mail(email_title, email_body, '1524126437@qq.com', [email])
    return render_to_response('myweather.html')

通过url触发发送邮件

 

然后问题就来了,磨了我一个晚上,好不容易调休一天,头疼。

大家都知道,Django的EMAIL_PORT默认是25,于是我们本地使用25端口发送,成功!

 

 

部署到阿里云就是不行。那么我们换成465。结果就是不行

再换587端口,注意,此时的EMAIL_USE_TLS此时一定是True,详见Django的文档。如下:

EMAIL_USE_TLS

Default: False

Whether to use a TLS (secure) connection when talking to the SMTP server. This is used for explicit TLS connections, generally on port 587. If you are experiencing hanging connections, see the implicit TLS setting EMAIL_USE_SSL.

EMAIL_USE_SSL

Default: False

Whether to use an implicit TLS (secure) connection when talking to the SMTP server. In most email documentation this type of TLS connection is referred to as SSL. It is generally used on port 465. If you are experiencing problems, see the explicit TLS setting EMAIL_USE_TLS.

Note that EMAIL_USE_TLS/EMAIL_USE_SSL are mutually exclusive, so only set one of those settings to True.

 

 

说起来轻松,一开始是想着阿里云给解封25端口,结果客服说我是轻量级服务器不给解封25端口。。。。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值