Domanda

I am using win32com to send emails after my code is done. However, I cannot figure out how to send it to more than 1 person. Now I can only add myself in cc, but not in the recipient list.

Here is my code:

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()

However if I try this:

newMail.To = ['Amy','Bob']

An error occurs:

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)

Can anyone help?

È stato utile?

Soluzione

Try separating by semicolons:

newMail.To = 'Amy; john; sandy'

If you do a web search for "outlook interop createitem" you can find the docs for MailItem.To where this is explained.

Update: this is not an Outlook script, it is a Python script that uses Python's win32com module to control Outlook. The docs I'm referring to are the VB/C# docs for Outlook's COM interface (for example the possible values of OlItemType).

Altri suggerimenti

Convert the list to a string, make sure you add the ';' at the end of each recipient:

newMail.To = "".join(<your_list>)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top