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

如何用win32库将Outlook导出的HTML邮件体嵌入Python代码?

Outlook HTML邮件模板的Python自动化发送方案

1. 能否直接导入导出的HTML文件?

完全可以直接导入Outlook导出的HTML邮件模板,这是最推荐的方式,无需手动复制粘贴代码,维护性更强。

2. 粘贴HTML代码的格式要求

如果选择手动粘贴HTML代码到Python中,需注意两点:

  • 用**三引号("""或''')**包裹完整的HTML内容,避免因字符串中的引号或换行导致语法错误
  • 确保HTML是完整结构(包含<html>、<body>标签,Outlook导出的HTML默认满足此要求),不要遗漏内嵌的CSS样式,否则邮件格式会错乱

3. 具体实现代码

方法一:读取HTML模板文件(推荐)

import win32com.client

# 初始化Outlook应用
outlook = win32com.client.Dispatch('outlook.application')
email_item = outlook.CreateItem(0)

# 设置邮件基础信息
email_item.To = "目标收件人邮箱"
email_item.Subject = "你的邮件主题"

# 读取本地HTML模板文件
html_template_path = "C:\\路径\\到\\你的\\邮件模板.html"
with open(html_template_path, 'r', encoding='utf-8') as template_file:
    email_html_content = template_file.read()

# 赋值给邮件HTML内容
email_item.HTMLBody = email_html_content

# 添加附件
attachment_path = 'C:\\attachment.csv'
email_item.Attachments.Add(attachment_path)

# 发送邮件
email_item.Send()

方法二:直接嵌入HTML代码

import win32com.client

outlook = win32com.client.Dispatch('outlook.application')
email_item = outlook.CreateItem(0)

email_item.To = "目标收件人邮箱"
email_item.Subject = "你的邮件主题"

# 用三引号包裹完整HTML代码(直接粘贴Outlook导出的内容即可)
email_item.HTMLBody = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <style>
        /* 这里保留Outlook导出的样式 */
        .mail-content { font-family: 微软雅黑; font-size: 14px; }
    </style>
</head>
<body>
    <div class="mail-content">
        这是你的邮件模板内容
    </div>
</body>
</html>
"""

attachment_path = 'C:\\attachment.csv'
email_item.Attachments.Add(attachment_path)
email_item.Send()

额外注意事项

  • 读取HTML文件时务必指定encoding='utf-8',避免中文乱码
  • 如果模板包含图片,Outlook导出时会将图片保存到本地文件夹,需确保收件人能访问该路径,或者将图片转为Base64内嵌到HTML中
  • 不要随意修改Outlook导出HTML中的专属标签或样式,否则可能导致邮件在Outlook中显示异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:11:05