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

Python通过win32com生成Outlook邮件时HTMLBody中JS失效问题

解决Outlook HTMLBody中JavaScript不生效的问题

Outlook为了安全,默认会禁用HTML邮件里的JavaScript,所以你用<script>标签动态生成日期的方法根本跑不起来。

正确的做法是在Python代码里直接生成当前日期时间,把这个值硬编码到HTML内容里,再赋值给HTMLBody。给你个示例代码:

import win32com.client
from datetime import datetime

# 生成格式化好的当前时间
now = datetime.now().strftime("%Y年%m月%d日 %H:%M:%S")

# 构造带时间的HTML邮件内容
html_body = f"""
<h1>你的邮件大标题</h1>
<h3>邮件生成时间:{now}</h3>
<p>这里是邮件正文内容,随便写点啥...</p>
"""

# 初始化Outlook并创建邮件
outlook_app = win32com.client.Dispatch("Outlook.Application")
mail_item = outlook_app.CreateItem(0)

# 设置邮件属性
mail_item.Subject = "带时间的测试邮件"
mail_item.HTMLBody = html_body
# 添加附件(替换成你的文件路径)
mail_item.Attachments.Add(r"C:\test\example.docx")
# 弹出邮件窗口预览
mail_item.Display()

另外提一句:Outlook的HTML渲染兼容性有限,尽量用基础的HTML标签和内联CSS,别搞太复杂的东西,避免格式错乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:00:53