Esp*_*azi 12
flask-mail是一个很好的工具,我用来呈现模板以将 HTML 呈现为我的邮件正文。
from flask_mail import Message
from flask import render_template
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
def send_mail_flask(to,subject,template,**kwargs):
msg = Message(subject=subject,sender='email@ofTheSender.com', recipients=to)
msg.body = render_template('template.txt', **kwargs)
msg.html = render_template('template.html', **kwargs)
mail.send(msg)
Run Code Online (Sandbox Code Playgroud)
模板是您希望包含在邮件中的 HTML 文件,您还可以使用msg.body!
您可能需要根据您使用的 SMTP 服务添加更多环境变量。
我最近制作了一个非常棒的电子邮件库,我决定也为其制作一个 Flask 扩展:Flask-Redmail
pip install flask-redmail
Run Code Online (Sandbox Code Playgroud)
from flask import Flask
from flask_redmail import RedMail
app = Flask(__name__)
email = RedMail(app)
# Setting configs
app.config["EMAIL_HOST"] = "localhost"
app.config["EMAIL_PORT"] = 0
app.config["EMAIL_USERNAME"] = "me@example.com"
app.config["EMAIL_PASSWORD"] = "<PASSWORD>"
app.config["EMAIL_SENDER"] = "no-reply@example.com"
Run Code Online (Sandbox Code Playgroud)
您可以简单地发送电子邮件:
@app.route("/send-email")
def send_email():
email.send(
subject="Example email",
receivers=["you@example.com"],
html="""
<h1>Hi,</h1>
<p>this is an example.</p>
"""
)
Run Code Online (Sandbox Code Playgroud)
它还可以使用您的默认 Jinja 环境。在 Flask 模板文件夹中创建一个文件emails/verify.html,如下所示:
<h1>Hi, you visited {{ request.endpoint }}.</h1>
Run Code Online (Sandbox Code Playgroud)
然后使用这个模板:
@app.route("/send-email-template")
def send_email():
email.send(
subject="Template example",
receivers=["you@example.com"],
html_template="emails/verify.html"
)
Run Code Online (Sandbox Code Playgroud)
Flask Redmail 是 Red Mail 的一个非常简单的包装器,并且 Red Mail 的功能非常广泛。它可以:
希望对你有帮助。
尝试使用 FlaskMail https://pythonhosted.org/flask-mail/
msg = Message(
recipients=[''],
sender='xx@zz.yy',
reply_to='aa@bb.cc',
subject=mail.subject
)
msg.html = mail.body
mail.send(msg)
Run Code Online (Sandbox Code Playgroud)
这里,mail是从“mails”目录导入的文件,body是一个 HTML 标记。
| 归档时间: |
|
| 查看次数: |
14738 次 |
| 最近记录: |