Skip to main content

SendGrid library for Python

Project description

This library allows you to quickly and easily send emails through SendGrid using Python.

Warning! This library was recently updated to bring it up to date with all of our other libraries. It behaves completely different from the previous release. Also, SMTP has been deprecated in support for the Web API.

Install

pip install sendgrid
# or
easy_install sendgrid

Example

import sendgrid

sg = sendgrid.SendGridClient('YOUR_SENDGRID_USERNAME', 'YOUR_SENDGRID_PASSWORD')

message = sendgrid.Mail()
message.add_to('John Doe <john@email.com>')
message.set_subject('Example')
message.set_html('Body')
message.set_text('Body')
message.set_from('Doe John <doe@email.com>')
status, msg = sg.send(message)

#or

message = sendgrid.Mail(to='john@email.com', subject='Example', html='Body', text='Body', from_email='doe@email.com')
status, msg = sg.send(message)

Error handling

By default, .send method returns a tuple (http_status_code, message), however you can pass raise_errors=True to SendGridClient constructor, then .send method will raise SendGridClientError for 4xx errors, and SendGridServerError for 5xx errors.

from sendgrid import SendGridError, SendGridClientError, SendGridServerError

sg = sendgrid.SendGridClient(username, password, raise_errors=True)

try:
    sg.send(message)
except SendGridClientError:
    ...
except SendGridServerError:
    ...

This behavior is going to be default from version 1.0.0. You are encouraged to set raise_errors to True for forwards compatibility.

SendGridError is a base-class for all SendGrid-related exceptions.

Adding Recipients

message = sendgrid.Mail()
message.add_to('example@email.com')
# or
message.add_to('Example Dude <example@email.com>')
# or
message.add_to(['Example Dude <example@email.com>', 'john@email.com'])

Adding BCC Recipients

message = sendgrid.Mail()
message.add_bcc('example@email.com')
# or
message.add_bcc(['Example Dude <example@email.com>', 'john@email.com'])

Setting the Subject

message = sendgrid.Mail()
message.set_subject('Example')

Set Text or HTML

message = sendgrid.Mail()
message.set_text('Body')
# or
message.set_html('<html><body>Stuff, you know?</body></html>')

Set From

message = sendgrid.Mail()
message.set_from('example@email.com')

Set ReplyTo

message.sendgrid.Mail()
message.set_replyto('example@email.com')

Set File Attachments

message = sendgrid.Mail()
message.add_attachment('stuff.txt', './stuff.txt')
# or
message.add_attachment('stuff.txt', open('./stuff.txt', 'rb'))
# or
message.add_attachment_stream('filename', 'somerandomcontentyouwant')
# strings, unicode, or BytesIO streams

SendGrid’s X-SMTPAPI

If you wish to use the X-SMTPAPI on your own app, you can use the SMTPAPI Python library.

There are implementations for setter methods too.

Substitution

message = sendgrid.Mail()
message.add_substitution("key", "value")

Section

message = sendgrid.Mail()
message.add_section("section", "value")

Category

message = sendgrid.Mail()
message.add_category("category")

Unique Arguments

message = sendgrid.Mail()
message.add_unique_arg("key", "value")

Filter

message = sendgrid.Mail()
message.add_filter("filter", "setting", "value")

TODO:

  • Add support for CID

Tests

python test/__init__.py

MIT License

Project details


Release history Release notifications

History Node

5.4.1

History Node

5.4.0

History Node

5.3.0

History Node

5.2.1

History Node

5.2.0

History Node

5.1.0

History Node

5.0.1

History Node

5.0.0

History Node

4.2.1

History Node

4.2.0

History Node

4.1.0

History Node

4.0.0

History Node

3.6.5

History Node

3.6.4

History Node

3.6.3

History Node

3.6.2

History Node

3.6.1

History Node

3.6.0

History Node

3.5.0

History Node

3.4.0

History Node

3.3.1

History Node

3.3.0

History Node

3.2.10

History Node

3.2.3

History Node

3.2.2

History Node

3.2.1

History Node

3.2.0

History Node

3.1.10

History Node

3.1.9

History Node

3.1.8

History Node

3.1.7

History Node

3.0.7

History Node

3.0.6

History Node

3.0.5

History Node

3.0.4

History Node

3.0.3

History Node

3.0.2

History Node

3.0.1

History Node

3.0.0

History Node

2.2.1

History Node

2.1.1

History Node

2.1.0

History Node

2.0.0

History Node

1.6.22

History Node

1.6.21

History Node

1.6.20

History Node

1.5.20

History Node

1.5.19

History Node

1.5.18

History Node

1.5.17

History Node

1.5.16

History Node

1.5.15

History Node

1.5.14

History Node

1.5.13

History Node

1.5.12

History Node

1.5.11

History Node

1.5.10

History Node

1.5.9

History Node

1.5.8

History Node

1.5.7

History Node

1.5.6

History Node

1.5.5

History Node

1.5.4

History Node

1.5.3

History Node

1.4.3

History Node

1.4.2

History Node

1.4.0

History Node

1.3.0

History Node

1.2.4

History Node

1.2.3

History Node

1.2.2

History Node

1.2.1

History Node

1.2.0

History Node

1.1.2

History Node

1.1.1

History Node

1.1.0

History Node

1.0.1

History Node

1.0.0

This version
History Node

0.5.4

History Node

0.5.3

History Node

0.5.2

History Node

0.5.1

History Node

0.5.0

History Node

0.4.1

History Node

0.4.0

History Node

0.3.7

History Node

0.3.6

History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.9

History Node

0.2.8

History Node

0.2.7

History Node

0.2.6

History Node

0.2.5

History Node

0.2.4

History Node

0.2.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
sendgrid-0.5.4.macosx-10.9-intel.exe (74.3 kB) Copy SHA256 hash SHA256 Windows Installer any Jul 18, 2014
sendgrid-0.5.4.tar.gz (5.3 kB) Copy SHA256 hash SHA256 Source None Jul 18, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page