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

标签 flask html-email sendgrid

我使用 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> element 没有良好的跨电子邮件支持。 https://www.caniemail.com/features/html-link/

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

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

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

关于flask - 使用 Flask Mail 和 SendGrid 导入 CSS 文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70674763/

相关文章:

flask - 如何使用flask_sqlalchemy正确注释类型?

html - 如何管理多个 HTML 电子邮件模板而不失去理智?

html - Gmail CSS 样式

python - 如何在简单的 python Flask 应用程序中组织 celery 任务?

javascript - 将 JavaScript 与 WTForms 结合使用

javascript - 具有两个 Y 轴的多线 Chart.js

html-email - 电子邮件模板中心对齐 Logo 旁边的文本

google-cloud-platform - 如何设置 Cloud Composer 以发送电子邮件?

laravel - 无法使用 SendGrid 中的 2 个可能的身份验证器使用用户名 "apikey"在 SMTP 服务器上进行身份验证

java - 创建了 sendgrid 电子邮件模板,如何从 Java 调用它