【问题标题】:How to enter senders name into email body如何在电子邮件正文中输入发件人姓名
【发布时间】:2019-06-19 13:38:08
【问题描述】:

我正在尝试设置一个脚本来发送电子邮件,并且我想将发件人姓名(取决于谁运行脚本)添加到电子邮件正文。

电子邮件有效,我在 Juypter 上设置,运行 Python 3,从 Outlook 发送电子邮件。

我的代码如下。 mail.SenderName 是我想从用户的 Outlook 帐户中提取名称的部分。在 VBA 中,这相当于使用 Application.UserName

import win32com.client as win32
outlook = win32.Dispatch("outlook.application")
mail = outlook.CreateItem(0)
mail.To = "user@somewhere.com"
mail.Subject = "Report"

#Text for email
mail.HTMLBody = "Dear All,<br><br>" \
"The latest version of the Report is attached in PDF format.<br><br>" \
"Kind Regards <br><br>" \
mail.SenderName

attachment  = filename
mail.Attachments.Add(attachment)

mail.Send()

所以我希望电子邮件正文是:

亲爱的,

报告的最新版本以 PDF 格式附上。

亲切的问候

鲍勃·史密斯

任何帮助,非常感谢。

更新
通过结合来自Error - Syntactical RemorseEugene Astafiev 的响应以及更多搜索,我设法解决了这个问题。谢谢你的指导。

完整代码为:

outlook = win32.Dispatch("outlook.application")
mail = outlook.CreateItem(0)
mail.To = "user@somewhere.com"
mail.Subject = "Report"

sender = outlook.GetNamespace("MAPI").CurrentUser.Name

#Text for email
mail.HTMLBody = "Dear All,<br><br>" \
"The latest version of the Report is attached in PDF format.<br><br>" \
"Kind Regards <br><br>" \
f"{sender}"

attachment  = filename
mail.Attachments.Add(attachment)

mail.Send()

【问题讨论】:

  • 使用字符串格式。 f"Sent from {mail.SenderName}" 之类的东西(在 Python2.7 中你需要我们 % 字符串格式)。
  • 或者只是str(mail.SenderName)
  • f"{mail.SenderName}" 行看起来正在尝试工作,但我认为它实际上无法从我的 Outlook 帐户中获取我的姓名。 (基本上我的名字应该是一个空格)

标签: python outlook


【解决方案1】:

你可以:

  1. 使用NameSpace.CurrentUser 属性将当前登录用户的显示名称作为Recipient 对象返回。
      Sub DisplayCurrentUser()  
        Dim myNamespace As Outlook.NameSpace 
        Set myNameSpace = Application.GetNameSpace("MAPI") 
        MsgBox myNameSpace.CurrentUser.Name  
      End Sub
  1. 如果已设置,您可以使用 MailItem.SendUsingAccount 属性返回一个 Account 对象,该对象表示要发送 MailItem 的帐户。
     MailItem.SendUsingAccount.DisplayName

【讨论】:

  • 这看起来一点也不像 Python。
  • 这看起来像 VBA,我在 VBA 中这样做没有问题。问题是关于 Python3 的。
  • Outlook 对象模型适用于所有编程语言。我只是展示了完成工作的属性和方法调用序列。
  • 谢谢 - 设法弄清楚如何在我的代码中使用它。并在此过程中进一步了解了它的工作原理。
猜你喜欢
  • 2019-03-17
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多