Python 3.x 从从python执行的outlook邮件模板中删除签名

Python 3.x 从从python执行的outlook邮件模板中删除签名,python-3.x,outlook,win32com,Python 3.x,Outlook,Win32com,我已经写了一个程序,它可以从共享驱动器打开一个.oft文件,并将所需的电子邮件id放入该字段,还可以编辑主题字段。 但是在邮件显示的最后,我的默认签名总是被添加。现在,我将把这个脚本部署到多个用户,邮件不需要用户签名,因为模板已经预定义了组签名 我已经搜索并发现Outlook中没有可以修改的mail.Signature import win32com.client as win32 outlook = win32.Dispatch('outlook.application') mail

我已经写了一个程序,它可以从共享驱动器打开一个.oft文件,并将所需的电子邮件id放入该字段,还可以编辑主题字段。 但是在邮件显示的最后,我的默认签名总是被添加。现在,我将把这个脚本部署到多个用户,邮件不需要用户签名,因为模板已经预定义了组签名

我已经搜索并发现Outlook中没有可以修改的mail.Signature

import win32com.client as win32  


outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItemFromTemplate(r'\\Server\Share\Folder\maial.oft')
mail.To = 'someone@exapmle.com'
mail.Subject = 'Test'
mail.Display(True)

是否有任何方法可以限制outlook使用python在邮件中添加默认签名?

签名作为单独的文件保存在
signatures
文件夹中。您可以在以下位置找到此文件夹:

  • 视窗XP
  • Windows Vista、Windows 7、Windows 8和Windows 10
要查看此文件夹,必须启用
查看隐藏文件和文件夹
,或者只需在资源管理器的地址栏中复制并粘贴上述路径即可直接打开文件夹


您可以从指定的文件夹中读取签名,并在邮件正文中找到它们(请参阅
HTMLBody
属性),这样您就知道应该删除哪些内容。

签名将作为单独的文件保存在
签名
文件夹中。您可以在以下位置找到此文件夹:

  • 视窗XP
  • Windows Vista、Windows 7、Windows 8和Windows 10
要查看此文件夹,必须启用
查看隐藏文件和文件夹
,或者只需在资源管理器的地址栏中复制并粘贴上述路径即可直接打开文件夹


您可以从指定的文件夹中读取签名,并在邮件正文中找到它们(请参阅
HTMLBody
属性),这样您就知道应该删除什么内容了。

由于签名是整个电子邮件正文(.HTMLBody)的一部分,我意识到我可以用空白“初始化”它,然后用所需内容“返回”它。如果您使用的是.GetInspector,则此选项尤其有用。默认情况下,该选项始终包含活动outlook用户帐户的指定电子邮件签名

因此,您可以:

mail.HTMLbody = ''
然后

mail.HTMLbody = '<Insert desired content>' #This overwrites the previous one
有关将Word文档复制到Outlook的详细信息,请参见此

-编辑-

由于OP使用的是一个模板,似乎电子邮件签名就在模板本身内(Outlook没有通过.GetInspector调用——这是我的实际情况),我能想到的两个可能的解决方案是

  • 通过创建一个没有sig的副本来消除它,然后将修改后的副本发送到Outlook中

  • 继续使用模板,但通过.GetInspector指定范围(不包括电子邮件信号)


  • 由于签名是整个电子邮件正文(.HTMLbody)的一部分,我意识到我可以用空白“初始化”它,然后用所需的内容“返回”它。如果您使用的是.GetInspector,则此选项尤其有用。默认情况下,该选项始终包含活动outlook用户帐户的指定电子邮件签名

    因此,您可以:

    mail.HTMLbody = ''
    
    然后

    mail.HTMLbody = '<Insert desired content>' #This overwrites the previous one
    
    有关将Word文档复制到Outlook的详细信息,请参见此

    -编辑-

    由于OP使用的是一个模板,似乎电子邮件签名就在模板本身内(Outlook没有通过.GetInspector调用——这是我的实际情况),我能想到的两个可能的解决方案是

  • 通过创建一个没有sig的副本来消除它,然后将修改后的副本发送到Outlook中

  • 继续使用模板,但通过.GetInspector指定范围(不包括电子邮件信号)


  • 但这将如何帮助我删除通过python脚本打开的签名表单邮件。我无法删除签名,因为我必须将其用于我的常规邮件。您可以从指定的文件夹中读取签名,并在邮件正文中找到它们(请参阅
    HTMLBody
    属性),这样您就知道应该删除什么。我已尝试打印邮件。HTMLBody,但它不包含任何与签名相关的可以删除的内容。签名可能不提供任何指标。您需要尝试从
    HTMLBody
    字符串中提取signatures文件夹中列出的一个片段。但这如何帮助我删除通过python脚本打开的签名表单邮件。我无法删除签名,因为我必须将其用于我的常规邮件。您可以从指定的文件夹中读取签名,并在邮件正文中找到它们(请参阅
    HTMLBody
    属性),这样您就知道应该删除什么。我已尝试打印邮件。HTMLBody,但它不包含任何与签名相关的可以删除的内容。签名可能不提供任何指标。您需要尝试从
    HTMLBody
    字符串中提取signatures文件夹中列出的片段。
    msg.GetInspector.WordEditor.Range(Start=0, End=0).Paste() #This seems to append, not overwrite