You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django发送的HTML邮件模板无法在Gmail中正常渲染的问题咨询

Gmail端邮件样式渲染失效的排查修复

问题根因

两个独立问题叠加导致样式完全无法展示:

1. Django发送逻辑参数错误

admin.py中的send_mail调用存在参数遗漏:
Django内置send_mail方法的HTML内容必须通过html_message关键字参数显式传入,纯文本内容作为第二个位置参数传入。
当前的调用代码:

send_mail(subject, plain_message, 'aaaaa@gmail.com', [email], fail_silently=True)

全程没有引用渲染完成的html_message变量,HTML模板根本没有被附加到邮件中,发出的邮件只有被strip_tags剥光所有标签的纯文本,自然没有任何样式。

2. 邮件模板不符合Gmail渲染规则

即使补全发送参数,当前模板写法也会被Gmail过滤掉大部分样式:

  • Gmail会直接移除<head>内所有<style>块的CSS规则,你写的类选择器样式、@media响应式规则会被完全删除,不生效
  • 模板中的banner区块、标题、操作按钮的核心样式全部依赖被过滤的类名规则,没有把样式直接写到元素上

修复操作

  • 补全发送接口参数,正确传入渲染好的HTML模板:
send_mail(
    subject,
    plain_message,
    'aaaaa@gmail.com',
    [email],
    fail_silently=True,
    html_message=html_message
)
  • 将所有核心展示样式从内部样式表迁移到元素的内联style属性上,不依赖类名或<style>块控制样式:
    • 给banner对应的<td>元素直接加上background-color: #eb681f内联样式,替换class="banner-color"的类规则
    • 给标题对应的<h3>元素直接加上color: #0066cc内联样式,替换class="title-color"的类规则
    • 给按钮对应的<a>元素直接加上background-color: #0066cc内联样式,替换class="button-color"的类规则
      注意:Gmail对内部样式表的支持非常有限,所有影响核心视觉的样式必须全部内联,否则一定会被平台过滤。

内容的提问来源于stack exchange,提问作者Jorge López

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 20:54:01