Skip to content
This repository has been archived by the owner on Jul 17, 2019. It is now read-only.

Update django-anymail to 3.0 #121

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates django-anymail from 1.4 to 3.0.

Changelog

3.0

Changes

* **Breaking change:** Python 3.3 is no longer supported (see 99).
* **Mailjet:** Fix tracking webhooks to work correctly when Mailjet "group events" option is disabled (see 106).
* **SendGrid:** Fix a problem where Anymail's status tracking webhooks didn't always receive the same `event.message_id` as the sent `message.anymail_status.message_id`, due to unpredictable behavior by SendGrid's API. Anymail now generates a UUID for each sent message and attaches it as a SendGrid custom arg named anymail_id. For most users, this change should be transparent. But it could be a **breaking change** if you are relying on a specific message_id format, or relying on message_id matching the *Message-ID* mail header or SendGrid's "smtp-id" event field. (More details in the [docs](https://anymail.readthedocs.io/en/stable/esps/sendgrid/sendgrid-message-id); also see 108.) Thanks to joshkersey for the report and the fix.
* Support Django 2.1 prerelease.

Deprecations

* This will be the last Anymail release to support Django 1.8, 1.9, and 1.10 (see 110).
* This will be the last Anymail release to support the legacy SendGrid v2 EmailBackend (see 111). (SendGrid's newer v3 API has been the default since Anymail v0.8.)
* Anymail v3.x will receive security updates and fixes for any breaking ESP API changes through at least April, 2019.
* If these deprecations affect you and you cannot upgrade, set your requirements to `django-anymail~=3.0` (a "compatible release" specifier, equivalent to `>=3.0,==3.*`).

2.2

Fix a breaking change accidentally introduced in v2.1: The boto3 package is no longer required if you aren't using Amazon SES.

2.1

**NOTE:** v2.1 accidentally introduced a **breaking change:** enabling Anymail webhooks with `include('anymail.urls')` causes an error if boto3 is not installed, even if you aren't using Amazon SES. This is fixed in v2.2.

New features

* **Amazon SES:** Newly-supported ESP ([docs](https://anymail.readthedocs.io/en/stable/esps/amazon_ses/)).
* **SparkPost:** Add SPARKPOST_API_URL setting to support SparkPost EU and SparkPost Enterprise ([docs](https://anymail.readthedocs.io/en/stable/esps/sparkpost/std:setting-ANYMAIL_SPARKPOST_API_URL)).

Other changes

* **Inbound:** Fix several issues with inbound messages, particularly around non-ASCII headers and body content. Add workarounds for some limitations in older Python email packages.
* **Postmark:** Update for Postmark "modular webhooks." This should not impact client code. (Also, older versions of Anymail will still work correctly with Postmark's webhook changes.)
* Use tox to manage Anymail test environments (see contributor [docs](https://anymail.readthedocs.io/en/stable/contributing/testing)).

Notice

This will be the last Anymail release to support Python 3.3. See 99 for more information.

2.0

Important updates
* **Breaking change:** Drop support for deprecated WEBHOOK_AUTHORIZATION setting. If you are using webhooks and still have this Anymail setting, you must rename it to WEBHOOK_SECRET. See the [v1.4 release notes](https://github.com/anymail/django-anymail/releases/tag/v1.4).

New features
* **SendinBlue:** Add new ESP ([docs](https://anymail.readthedocs.io/en/v2.0/esps/sendinblue/)). Thanks to RignonNoel for the implementation.
* Add EmailMessage `envelope_sender` attribute, which can adjust the message's Return-Path if supported by your ESP ([docs](https://anymail.readthedocs.io/en/v2.0/sending/anymail_additions/anymail.message.AnymailMessage.envelope_sender)).
* Add universal wheel to PyPI releases for faster installation.

Other changes
* Handle Reply-To, From, and To in EmailMessage `extra_headers` the same as Django's SMTP EmailBackend if supported by your ESP, otherwise raise an unsupported feature error. Fixes the SparkPost backend to be consistent with other backends if both `headers["Reply-To"]` and `reply_to` are set on the same message. If you are setting a message's `headers["From"]` or `headers["To"]` (neither is common), the new behavior is likely a **breaking change.** See [docs](https://anymail.readthedocs.io/en/v2.0/sending/django_email/additional-headers) and 91.
* Treat EmailMessage `extra_headers` keys as case-*insensitive* in all backends, for consistency with each other (and email specs). If you are specifying duplicate headers whose names differ only in case, this may be a **breaking change.** See [docs](https://anymail.readthedocs.io/en/v2.0/sending/django_email/additional-headers).
* Update setup.py metadata, clean up implementation. (Hadn't really been touched since original Djrill version.)
* Prep for Python 3.7.
Links

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant