《Flask Web开发》读书笔记(6)第6章电子邮件(关键词:Flask/电子邮件)

本文解决了一个常见的邮件发送问题,即由于发件人和收件人混淆导致的错误。通过正确配置.env文件和hello.py文件中的参数,实现了Flask应用通过QQ邮箱服务发送邮件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里容易出错的主要原因是,把发件人、收件人给搞错、搞混了(实际上是代码中变量的命名造成的这种混淆)。以下是解决办法(主要看发件人、收件人的注释):
【解决办法开始】

  1. 文件 .env 中:
MAIL_SERVER=smtp.qq.com

# 发件人
MAIL_USERNAME=mxxxxx@foxmail.com

MAIL_PASSWORD=xxxxxxxxxx

# 收件人
FLASKY_ADMIN=33xxxx@qq.com
  1. 文件 hello.py 中:
app.config['MAIL_SERVER'] = os.environ.get('MAIL_SERVER')
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')
app.config['FLASKY_MAIL_SUBJECT_PREFIX'] = '[Flasky]'

# 发件人
app.config['FLASKY_MAIL_SENDER'] = 'Flasky Admin <mxxxxxxx@foxmail.com>'

# 收件人
app.config['FLASKY_ADMIN'] = os.environ.get('FLASKY_ADMIN')


【解决办法结束】

【下面的不要看!】

第6章 电子邮件

。。。

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

P60面的

(venv) $ export MAIL_PASSWORD=<Gmail password>

这里,我用的是QQ邮箱。这里的等号右边的密码不是QQ邮箱密码是授权码。在登录了QQ邮箱之后,设置 - 账户 - POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 - 开启服务 - 生成授权码,这里获取。

。。。

!!!重点来了!!!
1、 6a的代码,请基本完全参照
https://github.com/miguelgrinberg/flasky-first-edition/blob/6a/hello.py
这一处第27行:

app.config['FLASKY_MAIL_SENDER'] = 'Flasky Admin <flasky@example.com>'

中的
flasky@example.com需要替换为收件人的邮箱。这里就是前面说的,基本完全参照之外,需要有点不同的地方。
注意:前后的尖括号不能删除

2、操作:
(1) 为了确认收件人的邮箱,需要再次输入。

(venv) $ export FLASKY_ADMIN=<your-email-address>

这里前后的尖括号要去掉,并输入【1、】中的相同的邮箱

(2)导入发件人的邮箱和密码(授权码,参照本文开头)

(venv) $ export MAIL_USERNAME=<Gmail username>
(venv) $ export MAIL_PASSWORD=<Gmail password>

(3)运行程序:

(venv)$python hello.py runserver --host 0.0.0.0

(4)在网页中提交一个新的name。

(5)检查收件箱,应该会有新用户进入的邮件提示。

参考文献:
1.《Flask Web开发》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值