【问题标题】:How to send HTML email through Outlook with a different mail-from (win32com.client)如何通过 Outlook 使用不同的邮件发件人 (win32com.client) 发送 HTML 电子邮件
【发布时间】:2014-09-04 23:24:39
【问题描述】:

背景简介:

我正在编写一个脚本来发送工作模板,但我通常将消息作为我们的团队邮件发送,以便在我的团队中可见。大部分都按预期工作,但我错过了 mail-from 操作,或者我做错了什么。通常,当我从“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()

【问题讨论】:

    标签: python winapi outlook email-client win32com


    【解决方案1】:

    我找到了:

    newMail.SentOnBehalfOfName = "mailer@company.com"
    

    这使我可以使用我的用户个人资料将消息作为我们的邮件列表发送。

    【讨论】:

      【解决方案2】:

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

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

      在备注中:

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

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

      因此,如果“mailer@my.org”有权通过您的 Outlook 帐户发送邮件,那么您就是这样做的;如果没有,那就没有办法了。

      “另见”部分有一个完整示例的链接(使用 C#,但您应该能够翻译)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 2012-03-03
        • 2015-11-13
        • 2016-03-10
        • 2022-10-23
        • 2020-02-08
        • 2020-05-30
        相关资源
        最近更新 更多