【问题标题】:Importing CSS files with Flask Mail and SendGrid Does Not Work使用 Flask Mail 和 SendGrid 导入 CSS 文件不起作用
【发布时间】:2022-01-11 23:49:47
【问题描述】:

我正在使用 Flask 和 SendGrid 发送电子邮件,我可以发送带有 HTML 但没有 CSS 的电子邮件。

这是我发送电子邮件的代码:

from app import mail
from flask import render_template, url_for
from flask_mail import Message

def send_email(to, subject, body):
    msg = Message(subject=subject, recipients=[to])
    msg.body = body
    msg.html = render_template('mail/email.html', body=body)
    mail.send(msg)

这是我导入 CSS 文件的方式(适用于所有其他文件):

<link type="text/css" href="{{ url_for('static', filename='assets/css/pixel.min.css') }}" rel="stylesheet">

如果上述代码有问题会导致这种情况发生,请告诉我。

正如我之前所说,我的问题是我导入到 email.html 的 CSS 文件没有设置电子邮件的样式。那么有什么办法可以解决这个问题,还是我必须使用 SendGrid 电子邮件模板?

【问题讨论】:

    标签: flask html-email sendgrid


    【解决方案1】:

    &lt;link&gt; 元素没有很好的跨电子邮件支持。 https://www.caniemail.com/features/html-link/

    您应该首先在每个元素中内联 CSS。有一些在线服务可以为您自动内联 CSS。

    其次,在 HTML 文档中嵌入无法内联的 CSS(通常只有媒体查询和 hack),即在 &lt;head&gt; 中使用 &lt;style&gt;...&lt;/style&gt;

    你不能仅仅嵌入 CSS 而忘记内联的原因是,你猜对了,&lt;style&gt; 并不是所有东西都支持的! https://www.caniemail.com/features/html-style/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 2016-06-18
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多