Python Yagmail Module – An easy way to have emails sent!

Python Yagmail Module

Hello, readers! This article focuses on the Implementation of Python Yagmail to have emails being sent from our applications.

So, let us get started!! 馃檪

What is Python Yagmail module?

In the current scenario, almost each and every business has an online setup. That is, they have an online presence for a better sale and reach in the market.

One of the common data parameters collected by websites is the email address of customers. We are often required to sign up to the website/portal using our email address.

We get advertisements or even sales/offers in our email boxes. They do not manually type and send emails to all the customers. This means, in some automated manner, the process of sending emails through the portal/application happens.

This is when the Python Yagmail module comes into the picture. With the Python Yagmail module, we can send emails to customers through our applications integrating the email module as a part of it.

It makes use of simple Gmail i.e. SMTP clients to send emails in an automated and user-friendly manner. We just need to provide fewer details such as email address, the body of the email, etc.

This module can be integrated as a part of any retail or online application/portal, this can be the best use case of the module. 馃檪

Let us now focus on the steps to implement the Yagmail module!

Steps to send emails using the Python Yagmail module

At first, we would need to install the Python Yagmail module on our workstations.

Make use of the pip command to install the Yagmail module:

pip install yagmail
Python Yagmail module - Installation
Python Yagmail module – Installation

Post-installation, we will have to install the module into our current python environment.

import yagmail

Once imported, we would need to provide an account to the Yagmail module to use for authentication and sending emails to the receiver. That is, we register a user with the module. By registering an email address, it makes the module easily access the SMTP server for sending emails.


yagmail.register('username', 'password')
  • If we do not wish to include our sensitive data such as password as a parameter, we can also create a .yagmail file to have your sensitive data into that file instead of exposing it directly as a parameter.

Now that we have registered the user, it is now the time to have a secure connection with the SMTP client.

We can make use of the below customizable command-

yagmail.SMTP('username', receiver1, receiver2, subject, body)
  • username: The sender’s email address
  • receiver: This containers the receiver’s email address. We can add multiple receiver email addresses here.
  • subject: A crisp title to the email
  • body: Content of the email

In case we do not specify the receiver’s email address, it sends the email to the sender’s address.

Once the content is ready, then we move ahead with the delivery of the same to the receiver’s email address.

For that, Yagmail provides us with send() function. Here, we pack and encapsulate all the content along with the receiver’s details plus the subject and body line together.

yagmail.send(to = [receiver1, receiver2, etc], subject=subject, contents=body)

Post this, we just need to watch the code doing the work for you!!

Complete Implementation Send Emails through Python Yagmail

Here’s a complete implementation of the Python yagmail module. You can copy-paste the below code to give it a try on your system. Make sure you have SMTP access enabled for whichever email address you plan to use. Most email providers block SMTP access by default to prevent misuse by unauthorized apps.

import yagmail
yag_mail = yagmail.SMTP(user='[email protected]', password='password', host='')
to= "[email protected]"
subject = "Welcome to Journaldev!!"
body = ["World of infinite knowledge"]

yag_mail.send(to=to, subject=subject, contents=body)
print("Email has been sent successfully to the receiver's address.")


By this, we have reached the end of this topic. Feel free to comment below, in case you come across any questions.

For more such posts related to Python Programming, Stay tuned with us.

Till then, Happy Learning!! 馃檪