【问题标题】:Outlook not recognizing valid emails addresses added with python module Win32comOutlook 无法识别使用 python 模块 Win32com 添加的有效电子邮件地址
【发布时间】: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


    【解决方案1】:

    添加这个:mail.Recipients.ResolveAll() 应该可以解决问题。

    在这里找到答案: https://stackoverflow.com/a/21011296/8350440

    微软文档在这里:https://docs.microsoft.com/en-us/office/vba/api/outlook.recipients.resolveall

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-13
      • 2023-01-26
      • 2015-11-19
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 2014-05-13
      相关资源
      最近更新 更多