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

如何用Python创建符合指定格式的SMTP自定义邮件模板?

Python 带表格框架的SMTP邮件模板实现

实现思路

基于官方基础模板,仅需在HTML邮件内容中嵌入标准<table>标签构建表头+数据行的框架,SMTP发送逻辑保持不变。以下是完整可运行的代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# SMTP配置信息
smtp_server = "smtp.example.com"
smtp_port = 587
sender_email = "your_sender@example.com"
sender_pwd = "your_auth_password"
receiver_email = "your_recipient@example.com"

# 创建邮件容器
msg = MIMEMultipart("alternative")
msg["Subject"] = "带表格的测试邮件"
msg["From"] = sender_email
msg["To"] = receiver_email

# 纯文本降级内容(适配不支持HTML的客户端)
text_content = """
这是一封带表格的邮件,请使用支持HTML的邮件客户端查看。
表格结构:
表头1 | 表头2 | 表头3
------|------|------
数据1 | 数据2 | 数据3
"""

# HTML邮件内容(包含表格框架)
html_content = """
<html>
  <body>
    <h3>业务数据汇总</h3>
    <table style="border-collapse: collapse; width: 90%; margin: 10px 0; border: 1px solid #eee;">
      <thead>
        <tr style="background-color: #f5f5f5;">
          <th style="border: 1px solid #eee; padding: 8px; text-align: left;">表头1</th>
          <th style="border: 1px solid #eee; padding: 8px; text-align: left;">表头2</th>
          <th style="border: 1px solid #eee; padding: 8px; text-align: left;">表头3</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td style="border: 1px solid #eee; padding: 8px;">行1数据1</td>
          <td style="border: 1px solid #eee; padding: 8px;">行1数据2</td>
          <td style="border: 1px solid #eee; padding: 8px;">行1数据3</td>
        </tr>
        <tr style="background-color: #fafafa;">
          <td style="border: 1px solid #eee; padding: 8px;">行2数据1</td>
          <td style="border: 1px solid #eee; padding: 8px;">行2数据2</td>
          <td style="border: 1px solid #eee; padding: 8px;">行2数据3</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
"""

# 挂载邮件内容
part_plain = MIMEText(text_content, "plain")
part_html = MIMEText(html_content, "html")
msg.attach(part_plain)
msg.attach(part_html)

# 发送邮件
try:
    with smtplib.SMTP(smtp_server, smtp_port) as server:
        server.starttls()
        server.login(sender_email, sender_pwd)
        server.sendmail(sender_email, receiver_email, msg.as_string())
    print("邮件发送成功")
except Exception as e:
    print(f"发送失败: {str(e)}")

关键细节

  • 采用内联CSS样式,避免外部样式表在邮件客户端中失效
  • 保留纯文本版本作为兼容方案,覆盖所有收件场景
  • 表格框架包含<thead>表头区和<tbody>数据区,可直接复制<tr>标签添加更多数据行

内容的提问来源于stack exchange,提问作者SM079

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:43:10