Send Email with Python SMPT and Gmail is Easy!

Rifa Faruqi - Nov 1 - - Dev Community

send email to someone else is an important thing, in development it can be used to send some code such as OTP, PIN, authentication, etc.

recently, I got a project that required me to be able to send emails to users for OTP code, and it turned out to be very easy.

here is the basics step I did:

Firstly, u need to setup your google account to be able to use for sending email by Allow 2-step verification (if done, skip this step).

  • Open your Google Account.
  • In the navigation panel, select Security.
  • Under “How you sign in to Google,” select 2-Step Verification and then Get started.
  • Follow the on-screen steps. Turn on 2-step verification

Secondly, create an app password (16-digit passcode that gives a less secure app or device permission to access your Google Account).

  • Make sure 2-step verification is allowed.
  • Open create and manage your app password.
  • Add name of the app (whatever u like), and the generated password will apear like this : Image description
  • Save the password (it will use later), don't share to anyone yeah.

Lastly, here is the basic code in python that work for me to send email :

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# creates SMTP session
s = smtplib.SMTP('smtp.gmail.com', 587)
# start TLS for security
s.starttls()
# Authentication
s.login("your_email@gmail.com", "yyaz pgow khtd xeqn")


# Create a multipart message
msg = MIMEMultipart()
msg['From'] = "your_email@gmail.com"
msg['To'] = "send_to_email@gmail.com"
msg['Subject'] = "Subject of the Email"
message = "How are you mate? This is a test email sent using Python"

# Attach the message body
msg.attach(MIMEText(message, 'plain'))

# Send the email
s.send_message(msg)
# terminating the session
s.quit()
Enter fullscreen mode Exit fullscreen mode
  • use the google account that has been setup (2-step verificiation) and use your email and the app password that has been generated as arguments in the s.login() like the code above.
  • run it, Here's a worked example :

Image description

Feel free to ask questions if you face any difficulties :)

Sources:

.
Terabox Video Player