Skip to main content

SendGrid library for Python

Project description

Travis Badge

This library allows you to quickly and easily use the SendGrid Web API v3 via Python.

Version 3.X.X of this library provides full support for all SendGrid Web API v3 endpoints, including the new v3 /mail/send.

This library represents the beginning of a new path for SendGrid. We want this library to be community driven and SendGrid led. We need your help to realize this goal. To help make sure we are building the right things in the right order, we ask that you create issues and pull requests or simply upvote or comment on existing issues or pull requests.

Please browse the rest of this README for further detail.

We appreciate your continued support, thank you!

Table of Contents

# Installation

Prerequisites

  • Python version 2.6, 2.7, 3.4 or 3.5

  • The SendGrid service, starting at the free level

Setup Environment Variables

Update the development environment with your SENDGRID_API_KEY, for example:

echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env

Install Package

pip install sendgrid

Dependencies

# Quick Start

Hello Email

The following is the minimum needed code to send an email with the /mail/send Helper (here is a full example):

With Mail Helper Class

import sendgrid
import os
from sendgrid.helpers.mail import *

sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
from_email = Email("test@example.com")
subject = "Hello World from the SendGrid Python Library!"
to_email = Email("test@example.com")
content = Content("text/plain", "Hello, Email!")
mail = Mail(from_email, subject, to_email, content)
response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)
print(response.body)
print(response.headers)

The Mail constructor creates a personalization object for you. Here is an example of how to add to it.

Without Mail Helper Class

The following is the minimum needed code to send an email without the /mail/send Helper (here is a full example):

import sendgrid
import os

sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
data = {
  "personalizations": [
    {
      "to": [
        {
          "email": "test@example.com"
        }
      ],
      "subject": "Hello World from the SendGrid Python Library!"
    }
  ],
  "from": {
    "email": "test@example.com"
  },
  "content": [
    {
      "type": "text/plain",
      "value": "Hello, Email!"
    }
  ]
}
response = sg.client.mail.send.post(request_body=data)
print(response.status_code)
print(response.body)
print(response.headers)

General v3 Web API Usage (With Fluent Interface)

import sendgrid
import os

sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
response = sg.client.suppression.bounces.get()
print(response.status_code)
print(response.body)
print(response.headers)

General v3 Web API Usage (Without Fluent Interface)

   import sendgrid
   import os

   sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
   response = sg.client._("suppression/bounces").get()
   print(response.status_code)
   print(response.body)
   print(response.headers)

# Processing Inbound Email

Please see our helper for utilizing our Inbound Parse webhook.

# Usage

# Use Cases

Examples of common API use cases, such as how to send an email with a transactional template.

# Announcements

All updates to this library is documented in our CHANGELOG and releases.

# Roadmap

If you are interested in the future direction of this project, please take a look at our open issues and pull requests. We would love to hear your feedback.

# How to Contribute

We encourage contribution to our libraries (you might even score some nifty swag), please see our CONTRIBUTING guide for details.

Quick links:

# Troubleshooting

Please see our troubleshooting guide for common library issues.

# About

sendgrid-python is guided and supported by the SendGrid Developer Experience Team.

sendgrid-python is maintained and funded by SendGrid, Inc. The names and logos for sendgrid-python are trademarks of SendGrid, Inc.

SendGrid Logo

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sendgrid-3.2.3.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sendgrid-3.2.3-py2.py3-none-any.whl (27.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sendgrid-3.2.3.tar.gz.

File metadata

  • Download URL: sendgrid-3.2.3.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sendgrid-3.2.3.tar.gz
Algorithm Hash digest
SHA256 bb3ac6452d641ce1af44c40162dc070d24e0b677de996b4cb04193c70c826a43
MD5 883d14a62e4e653b9a4e67395c07cc60
BLAKE2b-256 3481579dc4898a1abcd3a6eb5d7dccf6c792e8e235c08fec1e95d2a56e05252e

See more details on using hashes here.

File details

Details for the file sendgrid-3.2.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for sendgrid-3.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2750669889f5fdb0b86a03c40e69077c37369b55926338b0682d09c66070a8e4
MD5 7a73e1dc1818042a23acc6d0226a6a0d
BLAKE2b-256 55a37795cc993032523dc79dc1b3364797cc237e21efbf8ae103ad53ea6e828f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page