使用依赖:
flask_mail
安装方式:
pip3 install flask-mail
代码示例:
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
#通过app.config对象的update()方法来加载配置
app.config.update(
MAIL_SERVER="smtp.xxx.com",
MAIL_USE_SSL=True,
MAIL_PORT=465,
MAIL_USERNAME='[email protected]',
MAIL_PASSWORD="授权码",
MAIL_DEFAULT_SENDER=('wangju', '[email protected]') #默认发件人 发件人邮箱
)
mail = Mail(app)
subject='脚本测试用例维护通知' #邮件主题
recipients='[email protected]' #收件人
body='测试邮件' #邮件内容
#发送邮件
def send_email(subject,to,body):
message = Message(subject,recipients=[to],body=body)
mail.send(message)
@app.route('/')
def subscribe():
send_email(subject,'收件人邮件',body)
return '发送邮件成功,请查收'
if __name__ == '__main__':
app.run(debug=True)
遇到的问题:
运行demo.py时报错:
RuntimeError: Working outside of application context
查询了一番,只知道这个错的意思是没有激活上下文,但是不清楚,没有激活上下文又代表什么意思。
最后才发现,原来就是我在demo.py中
加了视图函数subscribe(),并在其中调用 send_email,就可以正常发送邮件了。
参考文档: