今天用Django发邮件的时候遇到两个问题,一个是ConnectionRefusedError: [WinError 10061],另一个是503, b’Error: need EHLO and AUTH first !’ 一开始我以为还以为是版本不匹配或者是防火墙等的问题导致不能发送,结果不是,遇到这两种问题大多数情况是因为打错字!如果你也遇到这两种情况的话,回头仔细检查检查错别字的问题。仔细看上面两张图,如果打错字的话pycharm会给你画个波浪线,还是挺不错的。当然,发送邮件必须保证是联网了,如果联网又没有错别字那就看看配置。
这是在settings下的,我以qq邮箱为例。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = "xxx@qq.com"
EMAIL_HOST_PASSWORD = "ffzvsnxxxxxrbhjj"
注意这里是授权码而不是你的qq密码!,说一下授权码 进入qq邮箱的账户这里,我开启了第一个,默认是关闭的,Django推送协议好像就支持SMTP所以只能选前两个,不同的服务它对应的服务器是不同的,第一个的话就是smtp.qq.com,点击开启后让你手机发个信息就OK了。 开启后再将配置搞定,就能发邮件了。
一开始可以先在shell里面调试,等没问题再放到视图或者中间件那里。首先进入shell导入邮件这个模块
from django.core.mail import send_mail
然后使用send_mail发送即可。
send_mail(subject="测试邮件",message="handsomeboy",from_email="1750000036@qq.com",recipient_list=["175900036@qq.com"])
第一个参数是邮件主题,第二个参数是要发送的内容,第三个参数是制定那个账户发送,第四个参数是接收对象,一个列表,可填写多个。
回车,搞定!
|