(转载请注明出处 切勿用于商业用途)
使用Flask-mail发送邮件
Flask-mail 中文文档 'smtp.qq.com'
'smtp.exmail.qq.com',在qq邮箱里可以查看到这个服务器地址(上边那个看不到)
这两个服务器都可用我都用过(当然不是编程)
因为我工作在ubuntu下,需要个邮件客户端来和公司员工邮件通信--我选择的是thunderbird(Mozilla产品)
而win平台下的foxmail是非常不错的邮件客户端(linux平台没有)
先说下这两个邮箱配置的区别
foxmail下配置很简单邮件服务器直接配置成'smtp.exmail.qq.com',启用ssl 端口465
而在ubuntu下的thunderbird 服务器配置成'smtp.qq.com'是发不出有邮件,目前不知道是什么情况但是配置成'smtp.qq.com'就可以发送
(额外说下收件服务器也得pop.qq.com才能收到)
win下的thunderbird我还没用过不知道会不会有此现象,如果有小伙伴知道怎解决此问题请留言。
上面的现象在flask-mail也出现了,也只能配置成'smtp.qq.com'。
好了 我们开始进入正题吧
配置文件config.py
-
class Config:
-
MAIL_SERVER = 'smtp.qq.com'
-
MAIL_PORT = 465
-
MAIL_USE_TLS = False
-
MAIL_USE_SSL = True
-
MAIL_USERNAME = '94xxxxxx2'
-
MAIL_PASSWORD = 'xxxxxxx'
-
FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]'
-
FLASKY_MAIL_SENDER = '94xxxxxx2@qq.com'
-
FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')
这些配置字段文档上都有 可以去开篇链接出= True/False
MAIL_USERNAME 是你的qq账号
MAIL_PASSWORD不一定是你的qq密码在此着重说下
此密码是smtp协议的中用户账号密码(smtp协议我没研究过)
此时你需要在qq邮箱 设置-账号 找到下面一项 然后将此服务打开,
打开此服务后需要输入密码 这个密码需要记住哦^.^
这个密码就是MAIL_PASSWORD要填的值.
这样就可以用flask-mail 发邮件了
可以这么发邮件
-
from flask import Flask
-
from flask import current_app
-
from flask.ext.sqlalchemy import SQLAlchemy
-
from flask.ext.mail import Mail
-
from flask.ext.mail import Message
-
from threading import Thread
-
-
app = Flask(__name__)
-
app.config.from_object(__name__)
-
-
mail = Mail(app)
-
-
def send_async_email(app,msg):
-
-
with app.app_context():
-
mail.send(msg)
-
-
def SendMail():
-
-
msg = Message('test',sender='94xxxxx2@qq.com',recipients=['aaaaa@qq.com'])
-
msg.body = "text body"
-
msg.html = "<b>HTML</b>body"
-
thr = Thread(target=send_async_email,args=[app,msg])
-
thr.start()
-
-
return "OK"
这样就能从
94xxxxx2@qq.com' 发送到
'aaaaa@qq.com',此时你的
'aaaaa@qq.com'邮箱里就会有邮件了
阅读(5946) | 评论(0) | 转发(0) |