Overview

A common task for system administrators and developers is to use scripts to send emails if an error occurs.

Why use Gmail?

Using Googles SMTP servers are free to use and works perfectly fine to relay emails. Note that Google has a sending limit: “Google will temporarily disable your account if you send messages to more than 500 recipients or if you send a large number of undeliverable messages. ” As long as you are fine with that, you are good to go.

Where do I start?

Sending mail is done with Python’s smtplib using an SMTP (Simple Mail Transfer Protocol) server. Since we will use Google’s SMTP server to deliver our emails, we will need to gather information such as server, port, authentication. That information is easy to find with a Google search.

Google’s Standard configuration instructions

Outgoing Mail (SMTP) Server – requires TLS or SSL: smtp.gmail.com

Use Authentication: Yes

Port for TLS/STARTTLS: 587

Port for SSL: 465

Server timeouts: Greater than 1 minute, we recommend 5

Account Name or User Name: your full email address (including @gmail.com or @your_domain.com)

Email Address: your email address (username@gmail.com or username@your_domain.com) Password: your Gmail password

Getting Started

Begin with opening up your favorite text editor and import the smtplib module at the top of your script.

import smtplib

Already at the top we will create some SMTP headers.

fromaddr = 'fromuser@gmail.com'
toaddrs = 'touser@gmail.com'
msg = 'Enter you message here’

Once that is done, create a SMTP object which is going to be used for connection with the server.

server = smtplib.SMTP("smtp.gmail.com:587”)

Next, we will use the starttls() function which is required by Gmail.

server.starttls()

Next, log in to the server:

server.login(username,password)

Then, we will send the email:

server.sendmail(fromaddr, toaddrs, msg)

The final program

You can see the full program below, by now you should be able to understand what it does.

import smtplib
# Specifying the from and to addresses

fromaddr = 'fromuser@gmail.com'
toaddrs  = 'touser@gmail.com'

# Writing the message (this message will appear in the email)

msg = 'Enter you message here'

# Gmail Login

username = 'username'
password = 'password'

# Sending the mail  

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *