我使用 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/