Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344826
  • 博文数量: 46
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 562
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-14 13:32
个人简介

先知者为师

文章分类

全部博文(46)

文章存档

2016年(1)

2015年(6)

2014年(20)

2013年(19)

我的朋友

分类: LINUX

2015-06-18 14:47:48

(转载请注明出处 切勿用于商业用途)

使用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

点击(此处)折叠或打开

  1. class Config:
  2.     MAIL_SERVER = 'smtp.qq.com'
  3.     MAIL_PORT = 465
  4.     MAIL_USE_TLS = False
  5.     MAIL_USE_SSL = True
  6.     MAIL_USERNAME = '94xxxxxx2'
  7.     MAIL_PASSWORD = 'xxxxxxx'
  8.     FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]'
  9.     FLASKY_MAIL_SENDER = '94xxxxxx2@qq.com'
  10.     FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN')

这些配置字段文档上都有 可以去开篇链接出= True/False
 MAIL_USERNAME 是你的qq账号
MAIL_PASSWORD不一定是你的qq密码在此着重说下
此密码是smtp协议的中用户账号密码(smtp协议我没研究过)
此时你需要在qq邮箱 设置-账号 找到下面一项 然后将此服务打开,

打开此服务后需要输入密码 这个密码需要记住哦^.^
这个密码就是MAIL_PASSWORD要填的值.

这样就可以用flask-mail 发邮件了

可以这么发邮件

点击(此处)折叠或打开

  1. from flask import Flask
  2. from flask import current_app
  3. from flask.ext.sqlalchemy import SQLAlchemy
  4. from flask.ext.mail import Mail
  5. from flask.ext.mail import Message
  6. from threading import Thread

  7. app = Flask(__name__)
  8. app.config.from_object(__name__)

  9. mail = Mail(app)

  10. def send_async_email(app,msg):

  11.     with app.app_context():
  12.             mail.send(msg)
  13.             
  14. def SendMail():

  15.     msg = Message('test',sender='94xxxxx2@qq.com',recipients=['aaaaa@qq.com'])
  16.     msg.body = "text body"
  17.     msg.html = "<b>HTML</b>body"
  18.     thr = Thread(target=send_async_email,args=[app,msg])
  19.     thr.start()

  20.     return "OK"


这样就能从94xxxxx2@qq.com' 发送到'aaaaa@qq.com',此时你的'aaaaa@qq.com'邮箱里就会有邮件了
阅读(5946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~