Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Call SparkPost API directly (drop unmaintained library) #203

Closed
medmunds opened this issue Sep 8, 2020 · 1 comment · Fixed by #204
Closed

Call SparkPost API directly (drop unmaintained library) #203

medmunds opened this issue Sep 8, 2020 · 1 comment · Fixed by #204

Comments

@medmunds
Copy link
Contributor

medmunds commented Sep 8, 2020

Up to v7.x, Anymail has integrated with SparkPost through their "super-mega-official" sparkpost Python package.

Although it still seems to be working for Anymail, that package hasn't been updated in over 2.5 years, has accumulated a number of bugs and merged-but-unreleased PRs, and is apparently "no longer supported" by the company.

SparkPost has a straightforward, JSON based sending API. It would be simple to call it directly (through requests) like Anymail does with nearly every other ESP. Going through the official Python library doesn't really add any value, and actually complicates ongoing maintenance. (Anymail contains its own workarounds for some of the library issues.)

An added benefit of calling the API directly is that newer SparkPost features (e.g., subaccounts, A/B testing) would become immediately available through Anymail's esp_extra, without having to wait for a library update (that may never be coming).

This would be a breaking change, as anyone using esp_extra with SparkPost would need to update it to the new format. (I'm not sure how common that is with SparkPost.)

medmunds added a commit that referenced this issue Sep 11, 2020
Switch from the (now unmaintained) python-sparkpost
client library to a requests-based backend that calls
SparkPost's Transmissions API directly.

Also adds support for text/x-amp-html alternative parts
(which are supported by the SparkPost API, but weren't
by the client library).

Closes #203
medmunds added a commit that referenced this issue Sep 11, 2020
Switch from the (now unmaintained) python-sparkpost
client library to a requests-based backend that calls
SparkPost's Transmissions API directly.

Also adds support for text/x-amp-html alternative parts
(which are supported by the SparkPost API, but weren't
by the client library).

Closes #203
@medmunds
Copy link
Contributor Author

Released in Anymail 8.0

medmunds added a commit that referenced this issue Nov 27, 2020
Switch from the (now unmaintained) python-sparkpost
client library to a requests-based backend that calls
SparkPost's Transmissions API directly.

Also adds support for text/x-amp-html alternative parts
(which are supported by the SparkPost API, but weren't
by the client library).

Closes #203
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant