A simple example to send emails via Outlook and Python win32com.
import win32com.client s = win32com.client.Dispatch("Mapi.Session") o = win32com.client.Dispatch("Outlook.Application") s.Logon("Outlook2003") Msg = o.CreateItem(0) Msg.To = "recipient@domain.com" Msg.CC = "more email addresses here" Msg.BCC = "more email addresses here" Msg.Subject = "The subject of you mail" Msg.Body = "The main body text of you mail" attachment1 = "Path to attachment no. 1" attachment2 = "Path to attachment no. 2" Msg.Attachments.Add(attachment1) Msg.Attachments.Add(attachment2) Msg.Send()
I wrote code like this
and the error:
Traceback (most recent call last):
File “C:/Users/satz/PycharmProjects/PYWork/Sample/EmailSample1.py”, line 33, in
send_notification()
File “C:/Users/satz/PycharmProjects/PYWork/Sample/EmailSample1.py”, line 12, in send_notification
mail.To = ‘abc@abc.com’,
File “C:\Users\satz\PycharmProjects\PYWork\venv\lib\site-packages\win32com\client\dynamic.py”, line 565, in __setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
pywintypes.com_error: (-2147352567, ‘Exception occurred.’, (4096, u’Microsoft Outlook’, u’The object does not support this method.’, None, 0, -2147352567), None)
Hi,
What if i want to change “from” of email?
Do you know something like
mail. from=”abc@..com” or mail.sender. None of them works for me.
mail.SentOnBehalfOfName = ‘whatever@abc.com’
You have to remove the comma at the end of ‘mailTo’-line. This is leading to the error you get.
Hi,
My company using outlook mailer I want to sent mail for my corporate mail id (xys@company.com) using python.
Please help me.
Hi Venkat,
Any one responded to this query, i need answer to update in my script. please help me
Hi I am not able to send email multiple recipient . Can you advise how to fix it?
com_error: (-2147352567, ‘Exception occurred.’, (4096, ‘Microsoft Outlook’, ‘Cannot add the attachment; no data source was provided.’, None, 0, -2147352567), None)
I get this error message even though the path to the attachment is correct.
Use this
How to protect same email ? please help
I am trying to read mail using pywin32 but but m not able to fetch all inbox item
Hey, what if i need to send the email to more than one accounts at the same time (not using a FOR loop to send it)
Thank you so much, Edson
It works for me!
Use this
Great stuff, how to set confidentiality label (Azure information protection), like confidential, internal, restricted etc.? Thanks.
mail.Sensitivity = 1
mail.Confidentiality = “Internal”
mail.Label = 1
I tried all the 3, nothing seem to work
did you find a solution? I have the same issue
hi, any help on setting the confidentiality label (Azure information protection) values?
I am also kinda stuck on this step.
how to add more recipients in cc?
Hey there,
you can simply use this:
Msg.CC = ‘Amy; john; sandy’
Best regards
Michael
Hi,
how to send multiple email in same thread in outlook
A Help, how to limit the size of files in the Attachments.Add?
This code is working fine if there are no issues in email ID. but it will stop in between if there is a bad email ID in list. How to skip that…
import pandas as pd
import win32com.client as win32
outlook = win32.Dispatch(‘outlook.application’)
df= pd.read_excel(r”C:\Auto Mail\Dump\Book.xlsx”)
df=df[[“Created date”,”Vendor account”,”Number”,”Item number”, “Inventory quantity”,”Product name”,”E-mail”,”Orderer”]]
df[‘E-mail’]=df[‘E-mail’].str.replace(‘,’,’;’)
df[“Comments”]= “”
df.rename(columns = {‘Created date’:’PO Date’, ‘Number’:’PO Number’,’Item number’:’Item Code’}, inplace = True)
df=df[df[‘E-mail’].notnull()]
df=df[df[“Inventory quantity”]>=1]
# Split Vendor
split_Vendor = df[‘Vendor account’].unique()
for value in split_Vendor:
df1=df[df[‘Vendor account’]== value]
Unique_email = df1[‘E-mail’].unique()
df1=df1[[“PO Date”,”PO Number”,”Item Code”, “Inventory quantity”,”Product name”,”Comments”]]
mail = outlook.CreateItem(0)
mail.To = Unique_email[0]
mail.Subject = ‘Open PO pending for delivery’
mail.HTMLBody = ”’\
Hello,
Please find the below open PO which is pending for delivery as per our system.
Kindly confirm the delivery date for each line item by EOD.
If material is already supplied then please ignore this mail.
”’ + df1.to_html(index=False) + ”’
Kind Regards,
Prashanth
”’
mail.Send()
I am running the code and getting this error please help me with this.
Traceback (most recent call last):
File “D:\EmailAutomation\mailtry.py”, line 11, in
mail.Attachments.Add(attachment)
File “<COMObject >”, line 2, in Add
pywintypes.com_error: (-2147352567, ‘Exception occurred.’, (4096, ‘Microsoft Outlook’, ‘Cannot find this file. Verify the path and file name are correct.’, None, 0, -2147024894), None)