SendGrid library for Python
Project description
This library allows you to quickly and easily send emails through SendGrid using Python.
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-1.1.1.macosx-10.9-intel.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71515670de71d4230c44874a12d2922e67eb834f757e72a4cb65c84ec1e9f0b5 |
|
MD5 | 2d0d28c8a1c72d4483810e265d5f9d74 |
|
BLAKE2b-256 | 0726e9a9f8dc5f37c39761d741baa8ab380a7f9eb954ff64e8b19b3bc549e8de |