How to Send Emails in Python Using Gmail's Free SMTP Mail Server API

Patricia Arquette
Release: 2024-11-17 13:40:02
Original
253 people have browsed it

This is the easiest way you can start sending emails with Python using only two libraries, smtplib and email.

We will be using Gmail’s free RESTful API in this example.

Here's the code

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

message = MIMEMultipart()
message["To"] = 'To line here.'
message["From"] = 'From line here.'
message["Subject"] = 'Subject line here.'

title = '<b> Title line here. </b>'
messageText = MIMEText('''Message body goes here.''','html')
message.attach(messageText)

email = 'Your Gmail address here.'
password = 'Your app password here.'

server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo('Gmail')
server.starttls()
server.login(email,password)
fromaddr = 'From line here.'
toaddrs  = 'Address you send to.'
server.sendmail(fromaddr,toaddrs,message.as_string())

server.quit()
Copy after login

How the code works ?

First, let’s import smtplib then MIMEMultipart and MIMEText from email.mime.multipart and email.mime.text respectively:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
Copy after login

We then call MIMEMultiPart() and instantiate it to the variable Message. We then give a string value to each variable which are Message, To, From and Subject, it should look like this:

Message = MIMEMultipart()
Message["To"] = 'To line here.'
Message["From"] = 'From line here.'
Message["Subject"] = 'Subject line here.'
Copy after login

We'll also give a title to our email through the title variable and add a message through MIMEText() and instantiate it to the variable messageText and finally attach our email message to our main variable Message using the attach() function, it should look like this:

title = '<b> Title line here. </b>'
messageText = MIMEText('''Message body goes here.''','html')
Message.attach(messageText)
Copy after login

Let’s add our Gmail address and our App password, click the link here if you don’t know how to get one:

email = 'Your Gmail address here.'
password = 'Your App password here.'
Copy after login

Then we'll have to connect to Gmail's SMTP server, we'll do that using the smtplib library and we'll need two variables which are the server we want to connect to and the port which are smtp.gmail.com and 587 respectively.

Using the smtplib library we'll be calling the SMTP function and add the server and port variables as its arguments, it should look like this:

smtplib.SMTP('smtp.gmail.com:587') (don't forget the : between them)

We'll then instantiate it to the variable server:

server = smtplib.SMTP('smtp.gmail.com:587')
Copy after login

We then add an ehlo statement using server.ehlo(‘Gmail’), this should be your domain name, this is useful when sending en email to another mail server that supports ESMTP, let’s keep it simple and just put Gmail:

server.ehlo('Gmail')
Copy after login

Let’s also start the TLS protocol with server.starttls(), this tells the mail server we want to send our email through a secure connection:

server.starttls()
Copy after login

We'll then login to the mail sever using this line:

server.login(email,password)
Copy after login

Let’s add a from address and to address(es), using fromaddr and toaddrs respectively:

fromaddr = 'Your Gmail address.'
toaddrs  = 'Destination address.'
Copy after login

Finally, we send our email using server.sendmail(fromaddr,toaddrs,message.as_string()) and we close our connection to the mail server using server.quit():

server.sendmail(fromaddr,toaddrs,message.as_string())
server.quit()
Copy after login

Save that in a file called send_email.py, open a Terminal if you're on Linux or a Command Prompt if you're on Windows and launch it using python send_email.py and you should see this:

How to Send Emails in Python Using Gmail’s Free SMTP Mail Server API

If nothing happens, well good news it's working!

You should have received an email to your destination email(s), here's what I got:

How to Send Emails in Python Using Gmail’s Free SMTP Mail Server API

Sending email using Python and Gmail's free SMTP server is the easiest way you can start sending email within your Python code, this is exactly what I've done when I built my first online busines ever. You can read more about it here.

The above is the detailed content of How to Send Emails in Python Using Gmail's Free SMTP Mail Server API. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template