如何使用Flask-Mail发送静态文件?

时间:2019-04-04 08:12:55

标签: python flask gmail yahoo flask-mail

我正在使用 Flask-Mail 向我的用户发送通知,这是我的代码段:

def send_async_email(app, msg):
    with app.app_context():
        mail.send(msg)

def send_email(subject, sender, recipients, text_body, html_body):
    msg = Message(subject, sender=sender, recipients=recipients)
    msg.body = text_body
    msg.html = html_body
    Thread(target=send_async_email, args=(current_app._get_current_object(), msg)).start()

在我的 html_body 中,我将发送包含静态文件(例如 .png .gif )的发票模板,但是无论何时发送电子邮件,它没有在用户收件箱中包含静态文件。

在我的html脚本中,这是我如何调用静态文件的代码段:

<img src="{{ url_for('static', filename='email-template/images/facebook@2x.png') }}"/>

我还尝试在静态文件的调用中添加 _external=True ,但仍然无法正常工作。

,然后我也尝试在调用文件时不使用 jinja2 ,如下所示:

src="./images/facebook@2x.png"

我正尝试将此电子邮件发送给 GMAIL ,并且已经在 Yahoo 中对其进行了测试,但仍然无法正常工作。

因此,在使用 Flask-Mail ..发送电子邮件时,是否可以包含静态文件??

编辑:在尝试了多种尝试和几次实验后,我也无法从外部(例如引导程序)添加 CSS 本地,但样式未显示在邮箱中

我仍在尝试寻找解决此问题的方法。

编辑2 :尝试了很多之后,即使我直接使用 GMAIL API 发送邮件,但遵循这个不错的{ {3}}。

编辑3 :将近两个月后,我遇到了这个问题,如果我的应用程序在VPS上运行,则在发送电子邮件时现在可以正常工作,但是如果我的应用程序在本地或heroku上运行,则无法正常工作(业余爱好开发

0 个答案:

没有答案