From 3bc9d119cfd7e9d0bcf6bf6a3216d34b871da5a6 Mon Sep 17 00:00:00 2001 From: SAUMITRAJAGDALE Date: Fri, 2 Oct 2020 10:03:08 +0530 Subject: [PATCH] added email sending script using python --- Bulk Email Sender/README.md | 32 +++++++++++++++++++++++++++++++ Bulk Email Sender/main.py | 37 ++++++++++++++++++++++++++++++++++++ Bulk Email Sender/test.xlsx | Bin 0 -> 9416 bytes 3 files changed, 69 insertions(+) create mode 100644 Bulk Email Sender/README.md create mode 100644 Bulk Email Sender/main.py create mode 100644 Bulk Email Sender/test.xlsx diff --git a/Bulk Email Sender/README.md b/Bulk Email Sender/README.md new file mode 100644 index 0000000..a07876f --- /dev/null +++ b/Bulk Email Sender/README.md @@ -0,0 +1,32 @@ +## Bulk Email Sender + +If you want to send same mail to a large number of emails ids, this script is perfect for you. + +### We are using smtplib module for email sending + +Requirements: +- pip install smtplib +- pip install pandas + +#### Flow + +smtplib(Simple Mail Transfer Protocol) + +1. Initialise the credentials for your sending emails ("SenderAddress" and "password" line 5 in main.py) +2. Read the excel file for emails ("e" line 12 in main.py) +3. Converting excel formatted column into python list. ("emails" line 15 in main.py) +4. Create an instance of smtplib.SMTP class ("server" line 18 in main.py) +5. Basic setup : starting the instance and logging in process (line 21 in main.py) +6. Initialise the content to various string variables which constitute the main content of your email. (line 25 in main.py) +7. Loop through all emails in the list and send the emails. (line 35 in main.py) + +#### NOTE +If you make any changes main.py, please mention it in README.md (this file). A better documentation makes the process of development faster. + +--- +Author - Saumitra Jagdale + + + + + diff --git a/Bulk Email Sender/main.py b/Bulk Email Sender/main.py new file mode 100644 index 0000000..0a144a9 --- /dev/null +++ b/Bulk Email Sender/main.py @@ -0,0 +1,37 @@ +import pandas as pd +import smtplib + +# Initialise Credentials +SenderAddress = "abc@gmail.com" +password = "Enter Your Password" +''' example +password="123456" +''' + +# Read the email addresses from excel sheet +e = pd.read_excel("test.xlsx") + +# Converting Emails in list format +emails = e['Emails'].values + +# Creating instance of subclass SMTP inside smtplib class +server = smtplib.SMTP("smtp.gmail.com", 587) + +# Setup +server.starttls() +server.login(SenderAddress, password) + +# Initialise the content +greeting = "Dear Receiver," +msg="Main Content" +link="Any URLS" +end="Ending Greets" +regards="With Regards" +name="Sender's name" +subject = "Subject" +body = "Subject: {}\n\n{}\n\n{}\n\n{}\n\n{}\n\n{}\n{}".format(subject,greeting,msg,link,end,regards,name) + +# Loop to send mail to all email ids +for email in emails: + server.sendmail(SenderAddress, email, body) +server.quit() \ No newline at end of file diff --git a/Bulk Email Sender/test.xlsx b/Bulk Email Sender/test.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..33f00cd7f3fc177e370f83eb496e30163c720b88 GIT binary patch literal 9416 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 literal 0 HcmV?d00001