如何在Python脚本的Outlook邮件正文中添加发件人名称
获取Outlook当前用户名并添加到邮件正文
嘿,我来帮你搞定这个问题!你之前尝试用mail.SenderName来获取发件人名称,但这个属性在邮件还没发送的时候是拿不到正确值的——它得等邮件发出去之后才会被填充上。
要拿到对应VBA里Application.UserName的当前用户名称,你得通过Outlook的MAPI命名空间来获取当前登录用户的信息,具体操作如下:
- 先获取当前Outlook登录用户的名称:
sender = outlook.GetNamespace("MAPI").CurrentUser.Name - 用Python的f-string将这个名称插入到邮件HTML正文中,确保格式符合你的需求。
下面是修正后的完整代码:
import win32com.client as win32 outlook = win32.Dispatch("outlook.application") mail = outlook.CreateItem(0) mail.To = "user@somewhere.com" mail.Subject = "Report" # 获取当前Outlook登录用户的名称 sender = outlook.GetNamespace("MAPI").CurrentUser.Name # 构建邮件HTML正文,插入用户名 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 # 这里确保filename变量已提前定义 mail.Attachments.Add(attachment) mail.Send()
这样修改后,邮件正文就会自动带上运行脚本的用户的Outlook账户名称,完全符合你期望的效果~
内容的提问来源于stack exchange,提问作者SwissRef
相关产品推荐
相关产品推荐

