Sign up for a SparkPost account and visit our Developer Hub for even more content.
The official Python package for using the SparkPost API.
- Documentation for python-sparkpost
- SparkPost API Reference
Install from PyPI using pip:
$ pip install sparkpost
Python 2.7 or later is required.
Go to API & SMTP in the SparkPost app and create an API key. We recommend using the SPARKPOST_API_KEY
environment variable:
from sparkpost import SparkPost
sp = SparkPost() # uses environment variable
Alternatively, you can pass the API key to the SparkPost class:
from sparkpost import SparkPost
sp = SparkPost('YOUR API KEY')
For SparkPost EU and Enterprise accounts, pass in a second parameter to set the API host.
from sparkpost import SparkPost
sp = SparkPost('YOUR API KEY', 'https://api.eu.sparkpost.com')
Here at SparkPost, our messages are known as transmissions. Let's use the underlying transmissions API to send a friendly test message:
from sparkpost import SparkPost
sp = SparkPost()
response = sp.transmissions.send(
use_sandbox=True,
recipients=['someone@somedomain.com'],
html='<p>Hello world</p>',
from_email='test@sparkpostbox.com',
subject='Hello from python-sparkpost'
)
print(response)
# outputs {u'total_accepted_recipients': 1, u'id': u'47960765679942446', u'total_rejected_recipients': 0}
The SparkPost python library comes with an email backend for Django. Put the following configuration in settings.py file.
SPARKPOST_API_KEY = 'API_KEY'
SPARKPOST_BASE_URI = 'api.sparkpost.com'
EMAIL_BACKEND = 'sparkpost.django.email_backend.SparkPostEmailBackend'
Replace API_KEY with an actual API key that you've generated in Get a Key section. Check out the full documentation on the Django email backend.
If you are using an EU account, set SPARKPOST_BASE_URI to api.eu.sparkpost.com. The default value is api.sparkpost.com.
There are a few simple modifications necessary to enable the use of the underlying requests
library that python-sparkpost uses. First, add the requests
and requests-toolbelt
to your project's requirements.txt
:
requests requests-toolbelt
Then create or update your appengine_config.py
file to include the following:
import requests
import requests_toolbelt.adapters.appengine
requests_toolbelt.adapters.appengine.monkeypatch()
Then deploy your app and you should be able to send using python-sparkpost on Google Cloud.
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork the repository on GitHub and make your changes in a branch on your fork
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Send a pull request. Make sure to add yourself to AUTHORS.