使用 Flask Mail 和 SendGrid 导入 CSS 文件不起作用

Importing CSS files with Flask Mail and SendGrid Does Not Work

我正在使用 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 电子邮件模板?

<link> 元素没有良好的跨电子邮件支持。 https://www.caniemail.com/features/html-link/

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

其次,在HTML文档中嵌入不能内联的CSS(通常只有媒体查询和hack),即在[=12=中使用<style>...</style> ].

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