Automate Your Email Marketing With Python
How To Create An Email Trigger System in Python — #PurePythonSeries — Episode #02
How does Python integrate with Outlook?

In this post, you’ll learn how to use the email package to send emails with MS Excel content and attachments using MS Outlook.Python’s built-in email package allows you to structure more fancy emails, which can then be transferred with SMTP as you have done already.
01#Step — Test OUTLOOK
import win32com.client as win32outlook = win32.Dispatch('outlook.application')mail = outlook.CreateItem(0)
mail.To = '****@gmail.com'
mail.Subject = 'OUTLOOK test'
mail.Body = '''
Hi,
This is a test for OUTLOOK.
If you receive this,
YOU ARE READY TO GO!
'''
mail.Send()
To avoid this message, Go To:
File>Options>Trust Center>Trust Center Settings>Programmatic Access.The computer does have to have an anti-virus, so it will not allow a user to change the settings if it hadn't.More info click here!
02#Step — Test Email Trigger System (ETS) in Python
import pandas as pd
admin_df = pd.read_excel('Send_Emails_Index.xlsx')
admin_df.info()
Now:
for i, email in enumerate(admin_df['E-mail']):
admin = admin_df.loc[i, 'Administrator']
area = admin_df.loc[i, 'Report']
file = admin_df.loc[i, 'Files']
mail = outlook.CreateItem(0)
mail.To = email
mail.Subject = '{} Report'.format(area)
mail.Body = '''
Dear {} Administrator,
Attached is the Report of {}, as requested.
Any doubts I am available.
Att.,
JayThree.
'''.format(admin, area)
attachment = r'C:\Users\giljr\Downloads\{}.xlsx'.format(file)
mail.Attachments.Add(attachment)mail.Send()
print("That's it! Thanks For reading! This post How do you automate emails in Python!")That's it! Thanks For reading! This post How do you automate emails in Python!
I hope you enjoyed that lecture.
If you find this post helpful, please click the applause button and subscribe to the page for more articles like this one.
Until next time!
👉Jupiter notebook link :)
👉or here
👉git
Credits & References
Hashtag Treinamentos by João Paulo Rodrigues de Lira — Thank you dude!
Related Posts
00#Episode#PurePythonSeries — Lambda in Python — Python Lambda Desmistification
01#Episode#PurePythonSeries —Send Email in Python — Using Jupyter Notebook — How To Send Gmail In Python
02#Episode#PurePythonSeries — Automate Your Email With Python & Outlook—How To Create An Email Trigger System in Python (this one)
03#Episode#PurePythonSeries — Manipulating Files With Python — Manage Your Lovely Photos With Python!
04#Episode#PurePythonSeries — Pandas DataFrame Advanced — A Complete Notebook Review
05#Episode#PurePythonSeries — Is This Leap Year? Python Calendar — How To Calculate If The Year Is Leap Year and How Many Days Are In The Month
06#Episode#PurePythonSeries — List Comprehension In Python — Locked-in Secrets About List Comprehension
07#Episode#PurePythonSeries — Graphs — In Python — Extremely Simple Algorithms in Python
08#Episode#PurePythonSeries — Decorator in Python — How To Simplifying Your Code And Boost Your Function
Note:Alternatively you can use f-string, I find it even more intuitive.
->Check it out here:)for i, email in enumerate(admin_df['E-mail']):
admin = admin_df.loc[i, 'Administrator']
area = admin_df.loc[i, 'Report']
file = admin_df.loc[i, 'Files']
mail = outlook.CreateItem(0)
mail.To = email
mail.Subject = f'{area} Report'
mail.Body = f'''
Dear {admin} Administrator,
Attached is the Report of {area}, as requested.
Any doubts I am available.
Att.,
JayThree.
'''
attachment = rf'C:\Users\giljr\Downloads\{file}.xlsx'
mail.Attachments.Add(attachment)mail.Send()
Standardize Before You Automate — J.P.Lira
