You are on page 1of 12

Sending email

& Geocoding
using python
Sending basic email
#native library in Python to send emails
import smtplib
#To create an SMTP object, each object is used for connection with
one server
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
#security function, needed to connect to the Gmail server
server.login("YOUR EMAIL ADDRESS", "YOUR PASSWORD")

msg = "YOUR MESSAGE!"


server.sendmail("YOUR EMAIL ADDRESS", "THE EMAIL ADDRESS TO
SEND TO", msg)
server.quit()
 smtplib — SMTP (Simple Mail Transfer Protocol)
client
The smtplib module defines an SMTP client session
object that can be used to send mail to any Internet
machine with an SMTP daemon.

Parameters for gmail server:


server location, port to use
Sending a more elaborated email
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

fromaddr = "YOUR ADDRESS"


toaddr = "ADDRESS YOU WANT TO SEND TO“

#Create the MIMEMultipart message object and load it with appropriate headers for From, To,
and Subject fields
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "SUBJECT OF THE MAIL"

body = "YOUR MESSAGE HERE"


msg.attach(MIMEText(body, 'plain'))

server = smtplib.SMTP('smtp.gmail.com', 587)


server.starttls()
server.login(fromaddr, "YOUR PASSWORD")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
Sending email to multiple recipients
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

fromaddr = " YOUR ADDRESS"


toaddr = ["ADDRESS YOU WANT TO SEND TO ", "ADDRESS YOU WANT TO SEND TO"]
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = ", ".join(toaddr)
msg['Subject'] = "SUBJECT OF THE MAIL"

body = "YOUR MESSAGE HERE"


msg.attach(MIMEText(body, 'plain'))

server = smtplib.SMTP('smtp.gmail.com', 587)


server.starttls()
server.login(fromaddr, "YOUR PASSWORD ")

#Return the entire message flattened as a string


text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
Sending email with to,cc,bcc
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

fromaddr = "YOUR ADDRESS"


toaddr = "ADDRESS YOU WANT TO SEND TO"
cc = "ADDRESS YOU WANT TO SEND TO"
bcc = "ADDRESS YOU WANT TO SEND TO"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "SUBJECT OF THE MAIL"

body = "YOUR MESSAGE HERE"


msg.attach(MIMEText(body, 'plain'))

server = smtplib.SMTP('smtp.gmail.com', 587)


server.starttls()
server.login(fromaddr, "YOUR PASSWORD ")

#Return the entire message flattened as a string


text = msg.as_string()
server.sendmail(fromaddr,[toaddr,cc,bcc] , text)
server.quit()
Sending an email with attachment
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

fromaddr = " YOUR ADDRESS "


toaddr = " ADDRESS YOU WANT TO SEND TO "
msg = MIMEMultipart()

msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "SUBJECT OF THE EMAIL"

body = "TEXT YOU WANT TO SEND"

msg.attach(MIMEText(body, 'plain'))
filename = "Notepad.txt"
attachment = open("C:\\Users\\SAI\\Desktop\\Notepad.txt","rb")

#MIME attachment with the content type "application/octet-stream" is a binary


file
part = MIMEBase('application', 'octet-stream')

#To change the payload to encoded form


part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(part)

server = smtplib.SMTP('smtp.gmail.com', 587)


server.starttls()
server.login(fromaddr, " YOUR PASSWORD ")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
Geocoding using python
Geocoding is the computational process of
transforming a postal address description to a
location on the Earth's surface (spatial
representation in numerical coordinates).

Ex:
import geocoder
g = geocoder.google('Mountain View, CA')
print(g.latlng)

Output:
[37.3860517, -122.0838511]
 Try:
g.osm
g.json
Reverse Geocoding using
python
import geocoder
g = geocoder.google([45.15, -75.14],
method='reverse')
print(g.city)

Output:
Berwick
 Try:
g.state
g.state_long
g.country
g.country_long

You might also like