Flask Web开发--狗书笔记006--第六章 电子邮件

很多类型的应用程序都需要在特定的事件发生的时候提醒用户,而常用的通信方式是电子邮件。

使用Flask-Mail提供电子邮件支持

安装Flask-Mail:

pip install flask-mail

先来看在Flask-Mail包中简单邮件传输协议SMTP的基本配置:

配置         	默认值	   说明
MAIL_SERVER	localhost	电子邮件服务器的主机名或IP地址
MAIL_PORT	25	电子邮件服务器的端口
MAIL_USE_TLS	False	启用传输层安全TLS协议
MAIL_USE_SSL	False	启用安全套接层SSL协议
MAIL_USERNAME	None	邮件账户的用户名
MAIL_PASSWORD	None	邮件账户的密码

在开发的过程中,如果连接到外部的SMPT服务器,则可能会更加方便。
书中是使用了Google Gmail账户发送电子邮件,可能我们去连接google服务器会比较慢,本文就使用163邮箱进行配置。
使用git来checkout出上一章的最后一个版本5d,在该版本上进行配置,添加代码如下:

import os
# ...
app.config['MAIL_SERVER'] = 'smtp.163.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME')
app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD')

注意,这里的端口改为了465,是网易邮箱的配置,在邮箱帮助中可以搜索到

同时设置MAIL_USE_SSL为True,无需设置MAIL_USE_TSL

这里应该注意千万不要讲账户和密码直接写入脚本,我们需要让脚本从环境中导入敏感信息。

更新于 2019.8.3

关于 163 邮箱的一些配置截图:
在这里插入图片描述
在这里插入图片描述

关于测试报错:

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

运行测试程序:

from flask_mail import Message
from app import mail
msg = Message('test subject', sender=app.config['ADMINS'][0], recipients=['2564493603@qq.com'])
msg.body = 'text body'
msg.html = '<h1>HTML body</h1>'
mail.send(msg)

报错。

原因: https://www.jianshu.com/p/ab0f062da743

需修改:

    MAIL_USE_SSL = True
    MAIL_USE_TLS = False

修改后测试成功:
在这里插入图片描述
查看接收邮箱:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值