使用Python中的win32com模块向多个收件人发送电子邮件

lsh*_*eng 9 python email win32com

我的代码完成后,我正在使用win32com发送电子邮件.但是,我无法弄清楚如何将它发送给超过1个人.现在我只能添加自己的cc,但不能添加到收件人列表中.

这是我的代码:

import win32com.client
import datetime as date

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = 'Hi'
newMail.Body = 'Hi'
newMail.To = 'Amy'
newMail.CC = 'Bob'    
newMail.Send()
Run Code Online (Sandbox Code Playgroud)

但是如果我试试这个:

newMail.To = ['Amy','Bob']
Run Code Online (Sandbox Code Playgroud)

发生错误:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, u'Microsoft Office Outlook', u'Type Mismatch: Cannot coerce parameter value. Outlook cannot translate your string.', None, 0, -2147352571), 1)
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Oli*_*ver 10

尝试用分号分隔:

newMail.To = 'Amy; john; sandy'
Run Code Online (Sandbox Code Playgroud)

如果您对"outlook interop createitem"进行网络搜索,则可以找到MailItem.To解释其位置的文档.

更新:这不是一个Outlook脚本,它是一个Python脚本,它使用Python的win32com模块来控制Outlook.我所指的文档是Outlook的COM接口的VB/C#文档(例如OlItemType的可能值).

  • 如果您希望它更加动态,那么您应该尝试以下操作: newMail.To = ";".join([i for i in to if isinstance(to, list) == True])。 (2认同)