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

如何在Python生成的Outlook自动邮件草稿中添加签名?

解决Outlook邮件草稿自动添加签名的问题

方案一:直接通过Outlook COM对象创建邮件(自动加载默认签名)

这种方法利用Outlook的自动化接口创建邮件,会自动加载你的默认签名,无需手动拼接。

示例代码

import win32com.client as win32
import pandas as pd

# 从DataFrame提取数据
one_row = df_changes.iloc[0]
email_address = one_row['收件人邮箱字段']  # 替换为你DataFrame中的实际字段名
address = one_row['Address']
subject = address[:30] + '...'
email_body = "你的邮件正文内容"  # 替换为实际正文文本

# 初始化Outlook应用
outlook = win32.Dispatch('Outlook.Application')
mail_item = outlook.CreateItem(0)  # 0 = olMailItem,代表创建邮件项

# 设置邮件基本信息
mail_item.To = email_address
mail_item.Subject = subject
mail_item.Body = email_body  # 如果需要HTML格式正文,改用 mail_item.HTMLBody

# 保存草稿并打开窗口,此时Outlook会自动插入默认签名
mail_item.Save()
mail_item.Display()

# 释放资源
del outlook

关键说明

  • 此方案要求已安装并登录Outlook客户端
  • 执行mail_item.Display()后,Outlook会自动将默认签名添加到邮件末尾
  • 若之前使用win32包失败,可能是未正确调用Save()或Display(),或者未正确初始化Outlook对象

方案二:手动读取Outlook签名文件并拼接

如果需要指定特定签名,或者想直接控制签名内容,可以读取Outlook存储的签名文件,将其拼接到邮件正文中。

示例代码

import os
import win32com.client as win32
import pandas as pd

# 获取Outlook签名的存储路径
user_profile = os.environ['USERPROFILE']
signature_root = os.path.join(user_profile, 'AppData', 'Roaming', 'Microsoft', 'Signatures')

# 获取签名文件夹(假设取第一个签名,可根据需求指定文件夹名)
signature_folders = [f for f in os.listdir(signature_root) if os.path.isdir(os.path.join(signature_root, f))]
signature_html = ""
if signature_folders:
    target_signature = signature_folders[0]
    # 读取HTML格式的签名文件(Outlook默认会生成HTML/RTF/TXT三种格式)
    signature_file = os.path.join(signature_root, target_signature, f"{target_signature}.htm")
    with open(signature_file, 'r', encoding='utf-8') as f:
        signature_html = f.read()

# 从DataFrame提取数据
one_row = df_changes.iloc[0]
email_address = one_row['收件人邮箱字段']
address = one_row['Address']
subject = address[:30] + '...'

# 构造HTML格式的邮件正文并拼接签名
email_body_html = "<p>这里是你的邮件正文内容</p>"
full_body = email_body_html + signature_html

# 创建并显示邮件
outlook = win32.Dispatch('Outlook.Application')
mail_item = outlook.CreateItem(0)
mail_item.To = email_address
mail_item.Subject = subject
mail_item.HTMLBody = full_body
mail_item.Display()

del outlook

关键说明

  • Outlook签名默认存储在%USERPROFILE%\AppData\Roaming\Microsoft\Signatures路径下
  • 每个签名对应一个文件夹,包含HTM/RTF/TXT三种格式的文件,推荐使用HTML格式以保留签名样式
  • 可以通过修改target_signature变量指定特定签名文件夹

注意事项

  • 确保已安装pywin32库:执行pip install pywin32完成安装
  • 运行代码前需关闭Outlook的“阻止程序自动发送邮件”的安全提示(可在Outlook设置中调整信任中心选项)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:12:39