【问题标题】:Sending High Importance email through Outlook using Python使用 Python 通过 Outlook 发送高重要性电子邮件
【发布时间】:2014-01-30 19:51:40
【问题描述】:

使用 win32com.client 包,我可以通过 Python 使用 Outlook 发送 HTML 电子邮件。但是,我很难弄清楚如何将电子邮件标记为“高优先级”或“高重要性”。

这是我用来成功发送电子邮件的代码(没有优先级标记):

RTFTEMPLATE = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
08.00.0681.000">
<TITLE>%s</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=3DLTR><SPAN LANG=3D"en-us"><FONT =
FACE="Times New Roman">
%s
</FONT></SPAN><SPAN =
LANG=3D"en-us"></SPAN></P>
<br>
%s
</BODY>
</HTML>"""

Format = { 'UNSPECIFIED' : 0, 'PLAIN' : 1, 'HTML' : 2, 'RTF'  : 3}
profile = "Outlook"


#session = win32com.client.Dispatch("Mapi.Session")
outlook = win32com.client.Dispatch("Outlook.Application")
#session.Logon(profile)
mainMsg = outlook.CreateItem(0)
mainMsg.To = "RECIPIENT"
mainMsg.Subject = subject
mainMsg.BodyFormat = Format['RTF']
mainMsg.HTMLBody = RTFTEMPLATE % (subject,html,bad_table)
mainMsg.Send()

【问题讨论】:

    标签: python outlook win32com


    【解决方案1】:

    您正在通过 COM Outlook Object Model 创建消息。这个模型有完整的文档记录,在这种情况下可以提供很大的帮助。

    例如,您正在创建的 MailItem 记录在 here 中。从该页面可以看出,它有一个属性 Importance,您可以将其设置为 2 (olImportanceHigh) 以将消息标记为“高度重要”。

    在代码中

    mainMsg.Importance = 2
    

    【讨论】:

    • 非常感谢!我一直在寻找那个关键字:Outlook 对象模型。在半相关的说明中,寡妇任务调度程序似乎不喜欢 win32com python 脚本。 Outlook 将发出一条错误消息,内容为“我们无法启动您的程序”。如果你不知道,我会开始另一个问题线程。 Thansl Paul-Jan 编辑:看起来这是因为 Python 正试图打开另一个 Outlook 实例。至少这是我的最佳猜测。
    【解决方案2】:

    要标记邮件以便 Outlook 将其识别为“高优先级”,请在邮件标题中添加以下行:

    X-Priority: 1
    

    但是,我无法告诉您如何通过您正在使用的组件向消息标题添加行。

    【讨论】:

    • 嗯...这就是我的问题所在。我对调用 Windows 应用程序的 Python 不太熟悉(我根据研究示例编写代码,而不是原理),所以我什至不知道从哪里开始......你对我可以从哪里开始有任何建议吗调查?
    • 我不确定您是否必须调用 Windows 应用程序 (outlook) 才能执行您正在执行的操作。换句话说,我认为您不必编写 Outlook 来发送消息,只是因为您想发送具有“高优先级”属性的消息。您可以简单地以通常的方式(通过电子邮件包)从 python 发送消息,并将上面的行包含在消息标题中。以下链接中有一个示例显示如何自定义消息头:docs.python.org/2/library/email-examples.html
    • 有趣。这似乎是更强大的解决方案。有时间我得研究一下。感谢您的帮助
    【解决方案3】:

    尝试设置这些额外的标题;

    X-Priority: 1 (Highest)
    X-MSMail-Priority: High
    Importance: High
    

    参见例如http://www.chilkatsoft.com/p/p_471.asp 用于代码示例和讨论。

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多