from flask import Flask
from flask_mail import Mail, Message
'''
flask 发送邮件 需要下载这个flask的扩展安装包
pip install Flask-Mail
可以在app.config 中配置
'''
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.163.com'
app.config['MAIL_PORT'] = '25'
app.config['MAIL_USERNAME'] = 'xxxx@163.com'
## 这是163 邮箱的授权码 不是密码
app.config['MAIL_PASSWORD'] = 'xxxx'
'''
配置详细
- MAIL_SERVER : eamil 的 smtp服务器或是主机名,默认为localhost
- MAIL_PORT : email 的 smtp服务器端口 默认为25
- MAIL_USE_TLS:默认为False 默认禁用安全层加密
- MAIL_USE_SSL:默认为False 默认禁用安全套接字层加密
- MAIL_DEBUG:默认为app.debug 设置debug 支持
- MAIL_USERNAME:默认为无 用户名
- MAIL_PASSWORD:默认为无 密码
- MAIL_DEFAULT_SENDER:默认为无 发送用户
- MAIL_MAX_EMAILS:默认为无 最大发送邮件数
- MAIL_SUPPRESS_SEND:默认为app.testing
- MAIL_ASCII_ATTACHMENTS:默认为False 如果设置成True ,符文件名将会转成ASCII
'''
'''
Mail 类
创建一个Mail 对象 (app)
Mail 类方法
- send_message(*args, **kwargs) 发送邮件的简洁方法 不可以发送附件
- send(message) 发送邮件方法 ,参数是message 对象 可以发送附件
- connect() 用于发送大量邮件
'''
mail = Mail(app)
@app.route('/')
def index():
mail.send_message(subject='你好',
# 发件人
sender='xxx@163.com',
body='你好,我是163邮箱, 恭喜你中奖了 一本Python 入门到放弃的一本书籍, 请注意查收',
recipients=['xxxx@qq.com','xxx@gmail.com'],
)
return '邮件发送完成'
'''
Message 类
Message 发送附件 attach() 方法
'''
# http://127.0.0.1:5000/message
@app.route('/message')
def message():
try:
msg = Message(subject='你好',
sender='xxx@163.com',
# body='你好,我是163邮箱, 恭喜你中奖了 一本Python 入门到放弃的一本书籍, 请注意查收',
recipients=['xxx@qq.com','xxxx@gmail.com','xxxx@163.com'],
)
msg.body = '你好,我是163邮箱, 恭喜你中奖了 一本Python 入门到放弃的一本书籍, 请注意查收'
# msg.html = '<h1>你好,我是163邮箱, 恭喜你中奖了 一本Python 入门到放弃的一本书籍, 请注意查收</h1>'
# 添加附件 app flask 对象
with app.open_resource('6.jpg') as fp:
msg.attach('6.jpg', 'image/jpg', fp.read())
mail.send(msg)
# return msg
return '邮件发送完成'
except:
return '邮件发送失败'
if __name__ == '__main__':
app.run(debug=True)
'''
class flask_mail.Message(subject ='',收件人= None,正文= None,html = None,sender = None,cc = None,bcc = None,附件= None,reply_to = None,date = None,charset = None,extra_headers = None,mail_options = None,rcpt_options = None )
封装电子邮件。
参数:
subject –电子邮件主题标题
recipients –电子邮件地址列表
body –纯文本消息
html – HTML消息
sender –电子邮件发件人地址,或默认为MAIL_DEFAULT_SENDER
cc – CC清单
bcc -密件抄送列表
attachments –附件实例列表
reply_to –回复地址
date –发送日期
charset –邮件编码
extra_headers –消息的其他标题的字典
mail_options –在MAIL FROM命令中使用的ESMTP选项列表
rcpt_options – RCPT命令中使用的ESMTP选项的列表
'''