如何通过Outlook发送带有不同邮件的HTML电子邮件(win32com.client)

时间:2014-09-04 23:24:39

标签: python winapi outlook email-client win32com

简要背景:

我正在编写脚本来发送工作模板,但我通常会将消息作为我们的团队邮件发送给团队中的可见性。其中大部分都按预期工作,但我错过了邮件来自行动或我做错了什么。通常情况下,当我从" FROM"制作消息时,我只选择Outlook中的备用发件人。下拉式菜单。

哪个属性可以让我指定不同的发送地址?

类似的东西:

newMail.From = "mailer@my.org"

我正在使用的简化版本发送HTML正文:

import win32com.client
olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "the subject"
#newMail.Body = "body text"
newMail.HTMLBody  = """<a href="https://google.com">Google Link</a>"""
newMail.To = "customer@example.org"
#newMail.CC = 'Bob'
#attachment1 = "c:\\mypic.jpg"
#newMail.Attachments.Add(attachment1)
newMail.Send()

2 个答案:

答案 0 :(得分:5)

我找到了它:

newMail.SentOnBehalfOfName = "mailer@company.com"

这允许我使用我的用户个人资料将邮件作为我们的邮件列表发送。

答案 1 :(得分:0)

根据Outlook对象模型中的MailItem文档,您需要的是Sender属性:

  

返回或设置一个AddressEntry对象,该对象对应于发送MailItem的帐户的用户。读/写。

在备注中:

  

在配置文件中定义了多个帐户的会话中,您可以设置此属性以指定从中发送邮件项目的帐户。将此属性设置为用户的AddressEntry对象,该对象由特定帐户的CurrentUser属性表示。

     

如果将Sender属性设置为无法在该帐户上发送邮件的AddressEntry,Outlook将引发错误。

所以,如果&#34; mailer@my.org"有权通过您的Outlook帐户发送,这是你如何做到的;如果它没有,那就没办法了。

&#34;另见&#34; section有一个完整示例的链接(在C#中,但你应该能够翻译)。