Chrome automatic gmail email sender with selenium
Personal project for educational use only
- Download
chromedriver
for your system from here. Extract the .zip file and put it in/assets
folder. - You can see how to use the project API at
exampleList.py
andexampleSimple.py
Create a credentials.py
file inside chromeEmail
folder with two variables: email
and password
. They are used to log in to your gmail account.
email = '[email protected]'
password = 'here.goes.your.password'
After that, open exampleSimple.py
. Replace body
with the message you want to send by email. Then replace subject
with the subject of your email. Replace to
with the receiver.
import credentials
from login import login
from endSession import endSession
from settings import Settings
from email import Email
from writeAndSend import writeAndSend
import time
import random
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
body = 'This is the body'
subject = 'This is the subject'
to = '[email protected]'
#Creates email to send
email = Email(body, subject, to)
#Creates a chromedriver session
chromedriver_location = Settings.chromedriver_location
driver = webdriver.Chrome(chromedriver_location)
#Login
login(driver,credentials.email,credentials.password)
#Write email
writeAndSend(driver, email)
#Logout
endSession(driver)
Lastly, open terminal pointing to chromeEmail folder and run python exampleSimple.py
Create a credentials.py
file inside chromeEmail
folder with two variables: email
and password
. They are used to log in to your gmail account.
email = '[email protected]'
password = 'here.goes.your.password'
After that, open assets/csvSource.csv
. Add the name and email of the people you want to reach with the program. Do NOT change the first row (The one with Name and Email written in it). Save your changes keeping .csv format.
Then open exampleList.py
, replace listBody
with the text you want to send. You can use {0}
notation to reference the name at the .csv associated to that specific recipient. Replace the subject at listSubject
.
import credentials
from login import login
from endSession import endSession
from writeAndSend import writeAndSend
from settings import Settings
from email import Email
from selenium import webdriver
from listWriteAndSend import listWriteAndSend
#Opens csv file at assets/csvSource.csv (you can add a name and an email)
with open('../assets/csvSource.csv', 'r') as csvFile:
#Creates a chromedriver session
chromedriver_location = Settings.chromedriver_location
driver = webdriver.Chrome(chromedriver_location)
#Login
login(driver,credentials.email,credentials.password)
#Write email
#if you add {0} in body, it will replace it with the name written at csv file
listBody = "Hello {0} i'm a csv email"
#you can omit the subject
listSubject = "here at csv world"
listWriteAndSend(driver, csvFile, listBody, listSubject)
#Logout
endSession(driver)
Finally, open terminal pointing to chromeEmail folder and run python exampleList.py