How to Send Email Using Python

The Simple Mail Transfer Protocol (SMTP) seems to be an e-mail standard for transmitting and directing messages among email systems. The smtplib package in Python creates an SMTP customer conference entity that could be cast off to direct an email to any computer on the Internet that has an SMTP or ESMTP listening service.

In this tutorial, we will let you know about the methods to send emails using SMTP in your system. We have been using the Spyder new version to do our email send implementation via python in Ubuntu 20.04. Login from your Ubuntu 20.04 system to start implementing it.

Example 01:

Open the Spyder application from the application area of your Linux system. The below-shown window will be opened. Write out the below code in it. We are importing smtplib in our code first. Then we have defined sender and receiver emails separately. Then we’ve used a triple quotation to include a simple e-mail within the text, and you’ve made sure the headings are formatted properly in the message. An empty line separates the From, To, as well as Subject headings out from email content.

In the try statement, to deliver the mail, first join to a native SMTP server using smtpObj, and formerly using the Sendmail function only with text, the from address, as well as the target address as options. We might consume a smtplib client to interact with a distant SMTP server if you’re not using an SMTP server operating on your native workstation. So, if you’re consuming a web platform like Hotmail as well as Yahoo Mail, your e-mail supplier should have supplied you with appropriate outbound mail server information. If the connection gets successful, it will send a mail to a receiver and print a success message. Otherwise, except statement will be executed with an error message.

Save your python code and execute this code by clicking on the “run” button of the spyder application.

Upon execution, it will show you the success message as shown in the below screenshot if the email send has been successful on your end.

Example 02:

As previously stated, Python includes the smtplib library, which manages all aspects of its protocols, including connecting, verifying, validating, and, sending an email. Utilizing smtplib, making these interactions is a breeze. At their most basic level, emails are merely sequences of text separated by newline symbols. The “From,” “To,” “Subject,” as well as “Body” sections would all be present in most mails. The ehlo() function can be used to build a decrypted variant. Throughout the smtplib package, there seem to be some very various ways to safeguard your SMTP communications.

Initially, the first method is to establish an unprotected connection then upgrade to TLS. The starttls() function is used to do this. To enhance the link to protect, we’re utilizing the starttls() function. Each line has a new area with its data, as you’ve seen. There are no binary protocols, XML, or JSON; only line-separated characters are supported.

String editing in Python is indeed a straightforward approach to better manage certain fields. What you need to do is send the email text argument to smtplib, which we’ll teach you how to accomplish in the following step. If the sending of mail gets successful, it will print a success message otherwise, print the error message from the except statement.

Let’s run the file once again by tapping on the “run” button in your Spyder application. If the code gets some error or connection cannot get successfully to link the Gmail server, it will display the error message “Something went wrong…” from the except statement as below.

If the code gets successful in sending a mail to the Gmail server upon execution, it will display the success message “Email sent!” that has been used in the try statement of the above python code. The output will look like something as presented in the image below.

Example 03:

We’ll discover what to do to send a quick email utilizing Python script in this tutorial. Python, as a dominant language, does not require the use of any other libraries and includes a local library for sending emails called “SMTP lib.” The function “smtplib” produces a Simple Mail Transfer Protocol customer session entity that may be used to write an email towards any valid email address on the web. Various ports have been used by various websites. Throughout this post, we’ll send an email using a Gmail account. The port number utilized in this case is 587. If you wish to send an email through a site apart from Gmail, you must first obtain the necessary credentials.

First and foremost, the “smtplib” module must be loaded. Afterwards, we’ll use its object SMTP to wrap an SMTP connection for establishing a session. We must provide the very first argument, which would be the server’s address as well as the other value, which would be the port to be used. Port number 587 is used for Gmail. Set the SMTP connection in TLS state now because of security concerns. All SMTP instructions are encrypted using TLS (Transport Layer Security).

Thereafter, you must enter your Gmail login details inside the login form for privacy and security. When you input an incorrect email address or password, the translator will display an identification error. Save the message you’ll be sending in a variable called message. Post your comment with the Sendmail() method. Three arguments are used by Sendmail(): sender, receiver email id, and text to be lead. All of the values should be in a similar order.


Apart from the Gmail-specific permission processes (which include less secure applications, etc.), these scripts and examples would work with almost any other mail service that provides SMTP connectivity, as long as you have the necessary server address as well as port.

About the author

Aqsa Yasin

I am a self-motivated information technology professional with a passion for writing. I am a technical writer and love to write for all Linux flavors and Windows.