I am using Outlook 2003
.
What is the best way to send email (through Outlook 2003
) using Python
?
Set up a secure connection using SMTP_SSL() and . starttls() Use Python's built-in smtplib library to send basic emails. Send emails with HTML content and attachments using the email package.
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 TheoretiCAL's 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: %s\r\nTo: %s\r\nSubject: %s\r\n\ %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: %s\r\nTo: %s\r\nSubject: %s\r\n\ %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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With