邮件

电子邮件

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)

posted @ 2018-02-15 16:01  blog_hfg  阅读(137)  评论(0)    收藏  举报