Skip to main content

SendGrid library for Python

Project description

|SendGrid Logo|

.. |SendGrid Logo| image:: https://uiux.s3.amazonaws.com/2016-logos/email-logo%402x.png
:target: https://www.sendgrid.com
|Travis Badge| |codecov| |Docker Badge| |Email Notifications Badge| |MIT
licensed| |Twitter Follow| |GitHub contributors|

**NEW:**

- Subscribe to email
`notifications <https://dx.sendgrid.com/newsletter/python>`__ for
releases and breaking changes.
- Quickly get started with
`Docker <https://github.com/sendgrid/sendgrid-python/tree/master/docker>`__.

**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 <https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html>`__
endpoints, including the new `v3
/mail/send <https://sendgrid.com/blog/introducing-v3mailsend-sendgrids-new-mail-endpoint>`__.

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 <https://github.com/sendgrid/sendgrid-python/issues>`__ and
`pull
requests <https://github.com/sendgrid/sendgrid-python/blob/master/CONTRIBUTING.md>`__
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 <#installation>`__
- `Quick Start <#quick-start>`__
- `Processing Inbound Email <#inbound>`__
- `Usage <#usage>`__
- `Use Cases <#use-cases>`__
- `Announcements <#announcements>`__
- `Roadmap <#roadmap>`__
- `How to Contribute <#contribute>`__
- `Troubleshooting <#troubleshooting>`__
- `About <#about>`__
- `License <#license>`__

# Installation

Prerequisites
-------------

- Python version 2.6, 2.7, 3.4, 3.5 or 3.6
- The SendGrid service, starting at the `free
level <https://sendgrid.com/free?source=sendgrid-python>`__

Setup Environment Variables
---------------------------

Update the development environment with your
`SENDGRID\_API\_KEY <https://app.sendgrid.com/settings/api_keys>`__, for
example:

.. code:: bash

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

Install Package
---------------

.. code:: bash

pip install sendgrid

Dependencies
------------

- `Python-HTTP-Client <https://github.com/sendgrid/python-http-client>`__

# Quick Start

Hello Email
-----------

The following is the minimum needed code to send an email with the
`/mail/send
Helper <https://github.com/sendgrid/sendgrid-python/tree/master/sendgrid/helpers/mail>`__
(`here <https://github.com/sendgrid/sendgrid-python/blob/master/examples/helpers/mail/mail_example.py#L20>`__
is a full example):

With Mail Helper Class
~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

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")
to_email = Email("test@example.com")
subject = "Sending with SendGrid is Fun"
content = Content("text/plain", "and easy to do anywhere, even with Python")
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 <https://sendgrid.com/docs/Classroom/Send/v3_Mail_Send/personalizations.html>`__
for you.
`Here <https://github.com/sendgrid/sendgrid-python/blob/master/examples/helpers/mail/mail_example.py#L16>`__
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 <https://github.com/sendgrid/sendgrid-python/blob/master/examples/mail/mail.py#L27>`__
is a full example):

.. code:: python

import sendgrid
import os

sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY'))
data = {
"personalizations": [
{
"to": [
{
"email": "test@example.com"
}
],
"subject": "Sending with SendGrid is Fun"
}
],
"from": {
"email": "test@example.com"
},
"content": [
{
"type": "text/plain",
"value": "and easy to do anywhere, even with Python"
}
]
}
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 <https://sendgrid.com/blog/using-python-to-implement-a-fluent-interface-to-any-rest-api/>`__)
----------------------------------------------------------------------------------------------------------------------------------------------

.. code:: python

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)
---------------------------------------------------

.. code:: python

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 <https://github.com/sendgrid/sendgrid-python/tree/master/sendgrid/helpers/inbound>`__
for utilizing our Inbound Parse webhook.

# Usage

- `SendGrid
Documentation <https://sendgrid.com/docs/API_Reference/index.html>`__
- `Library Usage
Documentation <https://github.com/sendgrid/sendgrid-python/tree/master/USAGE.md>`__
- `Example
Code <https://github.com/sendgrid/sendgrid-python/tree/master/examples>`__
- `How-to: Migration from v2 to
v3 <https://sendgrid.com/docs/Classroom/Send/v3_Mail_Send/how_to_migrate_from_v2_to_v3_mail_send.html>`__
- `v3 Web API Mail Send
Helper <https://github.com/sendgrid/sendgrid-python/tree/master/sendgrid/helpers/mail>`__
- build a request object payload for a v3 /mail/send API call.
- `Processing Inbound
Email <https://github.com/sendgrid/sendgrid-python/tree/master/sendgrid/helpers/inbound>`__

# Use Cases

`Examples of common API use
cases <https://github.com/sendgrid/sendgrid-python/blob/master/USE_CASES.md>`__,
such as how to send an email with a transactional template.

# Announcements

Please see our announcement regarding `breaking
changes <https://github.com/sendgrid/sendgrid-python/issues/217>`__.
Your support is appreciated!

All updates to this library are documented in our
`CHANGELOG <https://github.com/sendgrid/sendgrid-python/blob/master/CHANGELOG.md>`__
and `releases <https://github.com/sendgrid/sendgrid-python/releases>`__.
You may also subscribe to email `release
notifications <https://dx.sendgrid.com/newsletter/java>`__ for releases
and breaking changes.

# Roadmap

If you are interested in the future direction of this project, please
take a look at our open
`issues <https://github.com/sendgrid/sendgrid-python/issues>`__ and
`pull requests <https://github.com/sendgrid/sendgrid-python/pulls>`__.
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 <https://github.com/sendgrid/sendgrid-python/blob/master/CONTRIBUTING.md>`__
guide for details.

Quick links:

- `Feature
Request <https://github.com/sendgrid/sendgrid-python/blob/master/CONTRIBUTING.md#feature-request>`__
- `Bug
Reports <https://github.com/sendgrid/sendgrid-python/blob/master/CONTRIBUTING.md#submit-a-bug-report>`__
- `Sign the CLA to Create a Pull
Request <https://cla.sendgrid.com/sendgrid/sendgrid-python>`__
- `Improvements to the
Codebase <https://github.com/sendgrid/sendgrid-python/blob/master/CONTRIBUTING.md#improvements-to-the-codebase>`__

# Troubleshooting

Please see our `troubleshooting
guide <https://github.com/sendgrid/sendgrid-python/blob/master/TROUBLESHOOTING.md>`__
for common library issues.

# About

sendgrid-python is guided and supported by the SendGrid `Developer
Experience Team <mailto:dx@sendgrid.com>`__.

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

# License `The MIT License (MIT) <LICENSE.txt>`__

.. |Travis Badge| image:: https://travis-ci.org/sendgrid/sendgrid-python.svg?branch=master
:target: https://travis-ci.org/sendgrid/sendgrid-python
.. |codecov| image:: https://img.shields.io/codecov/c/github/sendgrid/sendgrid-python/master.svg?style=flat-square&label=Codecov+Coverage
:target: https://codecov.io/gh/sendgrid/sendgrid-python
.. |Docker Badge| image:: https://img.shields.io/docker/automated/sendgrid/sendgrid-python.svg
:target: https://hub.docker.com/r/sendgrid/sendgrid-python/
.. |Email Notifications Badge| image:: https://dx.sendgrid.com/badge/python
:target: https://dx.sendgrid.com/newsletter/python
.. |MIT licensed| image:: https://img.shields.io/badge/license-MIT-blue.svg
:target: ./LICENSE.txt
.. |Twitter Follow| image:: https://img.shields.io/twitter/follow/sendgrid.svg?style=social&label=Follow
:target: https://twitter.com/sendgrid
.. |GitHub contributors| image:: https://img.shields.io/github/contributors/sendgrid/sendgrid-python.svg
:target: https://github.com/sendgrid/sendgrid-python/graphs/contributors

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-5.3.0.tar.gz (16.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-5.3.0-py2.py3-none-any.whl (29.6 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

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

File hashes

Hashes for sendgrid-5.3.0.tar.gz
Algorithm Hash digest
SHA256 36249ab8a14012bf6fb334b75ab9fdf9260ed014149f7f3183a64fa1a7cfa265
MD5 7c80111062bab62eff5c365f9e76f55b
BLAKE2b-256 b0269d4f823943c05e16040d3022958c3f60e3efc33167dd82a53cebd841c268

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sendgrid-5.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0fcd4d093355d3880438400886f7b2a132e5e47070ef412f46558c96734493f6
MD5 2dba830197b9f09e5e9410acfd80a2df
BLAKE2b-256 e08444f7c29a111c5595304f173717800f15dc7ee137214eb42686dc2059f06a

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