DEV Community

Cover image for Sending emails with python and Twilio-sendgrid API
Emma Donery
Emma Donery

Posted on

Sending emails with python and Twilio-sendgrid API

Prerequisites

  • Python 3.6 or later
  • A free Twilio SendGrid account.

Setting Up the Environment

$ mkdir email_sender
$ cd email_sender
$ python3 -m venv venv
$ source venv/bin/activate
Enter fullscreen mode Exit fullscreen mode

After activating the environment, Install the necessary packages:

(venv) $ pip3 install sendgrid
(venv) $ pip3 install sendgrid
Enter fullscreen mode Exit fullscreen mode

NB: the python-dotenv is a Python module that allows you to specify environment variables in traditional UNIX-like โ€œ.envโ€ (dot-env) file within your Python project directory. It helps us work with SECRETS and KEYS without exposing them to the outside world, and keep them safe during the development of applications.Read more

Step 1: Create a .env file with the required variables

SENDGRID_API_KEY="mskj.bjsknlfjlsjnsnsnkjaknkkkwnkakJKkjnkKKNXKBVThdubsckeuisi"
Enter fullscreen mode Exit fullscreen mode

Step 2: create an app.py file (can name it according to your own preference)

import os
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
from dotenv import load_dotenv

load_dotenv()

message = Mail(
    from_email='senders_email@mail.com',
    to_emails='recipients_email@mail.com',
    subject='Sending emails with python and Twilio-sendgrid API',
    html_content='<strong>Thankyou for your business</strong>')
try:
    sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
    response = sg.send(message)
    print(response.status_code)
    print(response.body)
    print(response.headers)
except Exception as e:
    print(e.message)
Enter fullscreen mode Exit fullscreen mode

Step 3: In the terminal, run your app:

python3 app.py
Enter fullscreen mode Exit fullscreen mode

Step 4: Congratulations ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰ check your inbox!!!

The email arrives to the recipients inbox within seconds

Top comments (1)

Collapse
 
nataliiapolomkina profile image
nataliiapolomkina

Dear Emma, thank you for sharing this guide. I absolutely admire how you managed to put the necessary prerequisites, environment setup, and code implementation into such a clear and concise form. From my side, I can also share that Mailtrap API has native code integration with Python and can be a great choice for email sending. I look forward to your new materials!