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
相关产品推荐
相关产品推荐

