文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
发送密码重置电子邮件
现在我有了令牌,可以生成密码重置电子邮件。 send_password_reset_email()
函数依赖于上面写的 send_email()
函数。
from flask import render_template
from app import app
# ...
def send_password_reset_email(user):
token = user.get_reset_password_token()
send_email('[Microblog] Reset Your Password',
sender=app.config['ADMINS'][0],
recipients=[user.email],
text_body=render_template('email/reset_password.txt',
user=user, token=token),
html_body=render_template('email/reset_password.html',
user=user, token=token))
这个函数中有趣的部分是电子邮件的文本和 HTML 内容是使用熟悉的 render_template()
函数从模板生成的。 模板接收用户和令牌作为参数,以便可以生成个性化的电子邮件消息。 以下是重置密码电子邮件的文本模板:
Dear {{ user.username }},
To reset your password click on the following link:
{{ url_for('reset_password', token=token, _external=True) }}
If you have not requested a password reset simply ignore this message.
Sincerely,
The Microblog Team
这是更美观的的 HTML 版本:
<p>Dear {{ user.username }},</p>
<p>
To reset your password
<a href="{{ url_for('reset_password', token=token, _external=True) }}">
click here
</a>.
</p>
<p>Alternatively, you can paste the following link in your browser's address bar:</p>
<p>{{ url_for('reset_password', token=token, _external=True) }}</p>
<p>If you have not requested a password reset simply ignore this message.</p>
<p>Sincerely,</p>
<p>The Microblog Team</p>
请注意,这两个电子邮件模板中的 url_for()
调用中引用的 reset_password
路由尚不存在,这将在下一节中添加。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论