使用win32com模块在Python中向多个收件人发送邮件
我正在使用win32com来发送邮件,等我的代码执行完毕后。不过,我不知道怎么把邮件发给不止一个人。现在我只能把自己加到抄送(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()
但是如果我尝试这样做:
newMail.To = ['Amy','Bob']
就会出现一个错误:
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)
有没有人能帮帮我?
2 个回答
0
把这个列表转换成一个字符串,记得在每个收件人的后面加上';'。
newMail.To = "".join(<your_list>)
33
试着用分号来分隔:
newMail.To = 'Amy; john; sandy'
如果你在网上搜索“outlook interop createitem”,你会找到关于 MailItem.To
的文档,里面有详细解释。
更新:这不是一个Outlook脚本,而是一个使用Python的win32com模块来控制Outlook的Python脚本。我提到的文档是关于Outlook的COM接口的VB/C#文档(比如OlItemType的可能值)。