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 | 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
Built Distribution
Hashes for sendgrid-0.5.0.macosx-10.9-intel.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7c45cb255fd8291ae45b8ead16decc1577c724591a99b4449cc041ec61c7a2b |
|
MD5 | 3d223902f4efdad5e2488d73db8af23a |
|
BLAKE2b-256 | ceca8b17b67a603c14b7a2427783584dc32c833a1a33e21c6727b6a31594e344 |