邮件
电子邮件
Python标准库中的smtplib包可用在Flask程序中发送电子邮件,但包装了Flask-Mail扩展能更好地和Flask集成。
使用Flask-Mail提供电子邮件支持
Flask-Mail连接到简单邮件传输协议(SMTP)服务器.并把邮件交给这个服务器发送。
表6-1 Flask-Mail SMTP服务器的配置
配 置 默认值 说 明
MAIL_SERVER localhost 电子邮件服务器的主机名或 IP 地址
MAIL_PORT 25 电子邮件服务器的端口
MAIL_USE_TLS False 启用传输层安全(Transport Layer Security,TLS)协议
MAIL_USE_SSL False 启用安全套接层(Secure Sockets Layer,SSL)协议
MAIL_USERNAME None 邮件账户的用户名
MAIL_PASSWORD None 邮件账户的密码
配置Flask-Mail使用Gmail
import os
#...
app.config['MAIL_SERVER']='smtp.googlemail.com'
app.config['MAIL_PORT']=587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME')
app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD')
初始化Flask-Mail
from flask.ext.mail import Mail
mail = Mail(app)
设定电子邮件服务器用户名和密码这两个变量:
(venv) $ export MAIL_USERNAME=<Gmail username>
(venv) $ export MAIL_PASSWORD=<Gmail password>
发送一封测试邮件
from flask.ext.mail import Message
from hello import mail
msg = Message('test subject', sender='you@example.com',
recipients=['you@example.com'])
msg.body = 'text body'
msg.html = '<b>HTML</b> body'
with app.app_context():
mail.send(msg)

浙公网安备 33010602011771号