【发布时间】:2016-12-27 19:11:04
【问题描述】:
我有一个脚本循环遍历一个包含电子邮件地址的 Excel 表。它将电子邮件放在模板电子邮件的收件人字段中,然后将其保存在文件夹中。这个想法是稍后在手动按下发送按钮之前查看电子邮件。
问题是在发送后,我收到一个退回错误:“您的电子邮件帐户都不能发送给这个收件人。”对于 TO 和 CC。如果我在 TO 字段中手动重新输入相同的电子邮件地址,它可以正常发送。所以接收者对象或某事有问题。以下是提取的相关代码:
import win32com.client as win32
#This next set of code will create a folder in the OESP.AgencySupport shared mailbox
ol = win32.Dispatch("Outlook.Application")
mapi = ol.GetNamespace('MAPI')
myrecipient = mapi.CreateRecipient('OESP.agencysupport@icfi.com')
myrecipient.resolve
if myrecipient.resolved == True:
outlookfolder = mapi.GetSharedDefaultFolder(myrecipient,6).Folders.Add(the_date + 'Invoices')
#This part takes a template file, adds the email, subject, cc and attaches a PDF. This function is called later on in the script.
def emailattachment(pdf,address,date,agency,outlookfolder):
mail = ol.CreateItemFromTemplate(working_dir + r"invoice.oft",outlookfolder)
mail.To = address
mail.SentOnBehalfofName = myrecipient
mail.cc = myrecipient
mail.Subject = str(date) + 'invoice for ' + str(agency)
mail.Attachments.Add(pdf)
#mail.display(True)
mail.Move(outlookfolder)
无论如何,经过一些(大量)在线搜索后,我发现 Outlook 可能不会将我的 TO 和 CC 地址视为 SMTP 项目...尚未弄清楚如何确认这一点。有什么想法吗?
【问题讨论】:
标签: python email outlook win32com