项目场景:
简述项目相关背景:Linux,python,flask+web开发,qq邮箱发送
问题描述:
无法成功发送邮箱
(1)没有报错,但qq邮箱没有接受邮件,是因为没有打开qq邮箱的smtp服务,操作过程 https://blog.youkuaiyun.com/m0_46987952/article/details/128129332
(2)授权码输入错误,会报以下错误 SMTPAuthenticationError
(3)发送和接收的邮箱账号密码没有设置好,会出现以下错误
代码:
配置hello.py
import os
#使用qq邮箱进行发送
app.config['MAIL_SERVER'] = 'smtp.qq.com'
#端口号为25
app.config['MAIL_PORT'] = 25
app.config['MAIL_USE_TLS'] = True
#qq邮箱的账号名称,不要把账户密令直接写入脚本
app.config['MAIL_USERNAME']=os.environ.get('MAIL_USERNAME')
#qq邮箱的密码(第三方登录需要输入的是授权码,打开qq邮箱的smtp时会生成)
app.config['MAIL_PASSWORD'] =os.environ.get('MAIL_PASSWORD')
shell设置:
#设置发送方的邮箱即qq邮箱的账号和授权码(按照自己的情况进行设置)
(venv) $ export MAIL_USERNAME='1234567890@qq.com'
(venv) $ export MAIL_PASSWORD='vdkjdkfhsoif'
(venv) $ python hello.py shell
>>> from flask_mail import Message
>>> from hello import mail
#test subject为发送的主题名称,sender与上方MAIL_USERNAME设置的对应,
#recipients是接收方的邮箱,此处的例子是网易邮箱
>>> msg = Message('test subject', sender='1234567890@qq.com', recipients=['1234567890@163.com'])
#设置正文的内容
>>> msg.body = 'this is a first email'
>>> with app.app_context():
... mail.send(msg)
结果:
可以看到网易邮箱收到了邮件