在Python中向多个邮件分发列表发送Outlook邮件

0 投票
1 回答
2653 浏览
提问于 2025-04-18 08:41

我正在使用Python和win32com.client来给多个邮件分发列表发送Outlook邮件,代码是这样的:

olMailItem = 0x0
obj = win32com.client.Dispatch("Outlook.Application")
newMail = obj.CreateItem(olMailItem)
newMail.Subject = "This is subject"
newMail.To = "abc@company.com"
newMail.CC = "samplegrp1; samplegrp2"   # offending statement
//some html processing in mail content
newMail.Send()

上面的代码可以正常工作,因为我能成功发送邮件给一个小组,代码是:

newMail.CC = "samplegrp1"

但是当我尝试发送给多个小组时(就是上面提到的那句代码),我收到了以下错误:

>     return self._oleobj_.InvokeTypes(61557, LCID, 1, (24, 0), (),)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Out
look', 'Outlook does not recognize one or more names. ', None, 0, -2147467259),
None)

我试过用逗号代替分号,或者用加号等方法,但都没有成功。

如果有人能帮忙,谢谢。

1 个回答

2

试试这个:

from win32com.client.gencache import EnsureDispatch
from win32com.client import constants

outlook = EnsureDispatch("Outlook.Application")
newMail = outlook.CreateItem(constants.olMailItem)
newMail.Subject = "This is subject"

samplegrp1 = newMail.Recipients.Add("samplegrp1")
samplegrp2 = newMail.Recipients.Add("samplegrp2")
samplegrp1.Type = constants.olCC
samplegrp3.Type = constants.olCC
newMail.Recipients.ResolveAll()

这个内容在这里有详细说明:如何为邮件项目指定不同的收件人类型

撰写回答