Send Outlook Email Via Python?
Send Outlook Email Via Python?
import win32com.client as win32
outlook = win32.Dispatch(outlook.application)
mail = outlook.CreateItem(0)
mail.To = To address
mail.Subject = Message subject
mail.Body = Message body
mail.HTMLBody = <h2>HTML Message body</h2> #this field is optional
# To attach a file to the email (optional):
attachment = Path to the attachment
mail.Attachments.Add(attachment)
mail.Send()
Will use your local outlook account to send.
Note if you are trying to do something not mentioned above, look at the COM docs properties/methods: https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/mailitem-object-outlook. In the code above, mail
is a MailItem Object.
For a solution that uses outlook see TheoretiCALs answer.
Otherwise, use the smtplib that comes with python. Note that this will require your email account allows smtp, which is not necessarily enabled by default.
SERVER = smtp.example.com
FROM = [email protected]
TO = [listOfEmails] # must be a list
SUBJECT = Subject
TEXT = Your Text
# Prepare actual message
message = From: %srnTo: %srnSubject: %srn
%s
% (FROM, , .join(TO), SUBJECT, TEXT)
# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
EDIT: this example uses reserved domains like described in RFC2606
SERVER = smtp.example.com
FROM = [email protected]
TO = [[email protected]] # must be a list
SUBJECT = Hello!
TEXT = This is a test of emailing through smtp of example.com.
# Prepare actual message
message = From: %srnTo: %srnSubject: %srn
%s
% (FROM, , .join(TO), SUBJECT, TEXT)
# Send the mail
import smtplib
server = smtplib.SMTP(SERVER)
server.login(MrDoe, PASSWORD)
server.sendmail(FROM, TO, message)
server.quit()
For it to actually work with gmail, Mr. Doe will need to go to the options tab in gmail and set it to allow smtp connections.
Note the addition of the login line to authenticate to the remote server. The original version does not include this, an oversight on my part.
Send Outlook Email Via Python?
Check via Google, there are lots of examples, see here for one.
Inlined for ease of viewing:
import win32com.client
def send_mail_via_com(text, subject, recipient, profilename=Outlook2003):
s = win32com.client.Dispatch(Mapi.Session)
o = win32com.client.Dispatch(Outlook.Application)
s.Logon(profilename)
Msg = o.CreateItem(0)
Msg.To = recipient
Msg.CC = moreaddresses here
Msg.BCC = address
Msg.Subject = subject
Msg.Body = text
attachment1 = Path to attachment no. 1
attachment2 = Path to attachment no. 2
Msg.Attachments.Add(attachment1)
Msg.Attachments.Add(attachment2)
Msg.Send()