Django-anymail

Latest version: v10.3

Safety actively analyzes 629599 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 10

4.1

----

*2018-08-27*

Features
~~~~~~~~

* **SendGrid:** Support both new "dynamic" and original "legacy" transactional
templates. (See
`docs <https://anymail.dev/en/stable/esps/sendgrid/#sendgrid-templates>`__.)
* **SendGrid:** Allow merging `esp_extra["personalizations"]` dict into other message-derived
personalizations. (See
`docs <https://anymail.dev/en/stable/esps/sendgrid/#sendgrid-esp-extra>`__.)

4.0

----

*2018-08-19*

Breaking changes
~~~~~~~~~~~~~~~~

* Drop support for Django versions older than Django 1.11.
(For compatibility back to Django 1.8, stay on the Anymail `v3.0`_
extended support branch.)
* **SendGrid:** Remove the legacy SendGrid *v2* EmailBackend.
(Anymail's default since v0.8 has been SendGrid's newer v3 API.)
If your settings.py `EMAIL_BACKEND` still references "sendgrid_v2," you must
`upgrade to v3 <https://anymail.dev/en/v3.0/esps/sendgrid/#upgrading-to-sendgrid-s-v3-api>`__.

Features
~~~~~~~~

* **Mailgun:** Add support for new Mailgun webhooks. (Mailgun's original "legacy
webhook" format is also still supported. See
`docs <https://anymail.dev/en/stable/esps/mailgun/#mailgun-webhooks>`__.)
* **Mailgun:** Document how to use new European region. (This works in earlier
Anymail versions, too.)
* **Postmark:** Add support for Anymail's normalized `metadata` in sending
and webhooks.

Fixes
~~~~~

* Avoid problems with Gmail blocking messages that have inline attachments, when sent
from a machine whose local hostname ends in *.com*. Change Anymail's
`attach_inline_image()` default *Content-ID* domain to the literal text "inline"
(rather than Python's default of the local hostname), to work around a limitation
of some ESP APIs that don't permit distinct content ID and attachment filenames
(Mailgun, Mailjet, Mandrill and SparkPost). See `112`_ for more details.
* **Amazon SES:** Work around an
`Amazon SES bug <https://forums.aws.amazon.com/thread.jspa?threadID=287048>`__
that can corrupt non-ASCII message bodies if you are using SES's open or click
tracking. (See `115`_ for more details. Thanks to `varche1`_ for isolating
the specific conditions that trigger the bug.)

Other
~~~~~

* Maintain changelog in the repository itself (rather than in GitHub release notes).
* Test against released versions of Python 3.7 and Django 2.1.

3.0

----

*2018-05-30*

This is an extended support release. Anymail v3.x will receive security updates
and fixes for any breaking ESP API changes through at least April, 2019.

Breaking changes
~~~~~~~~~~~~~~~~

* Drop support for Python 3.3 (see `99`_).
* **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.dev/en/stable/esps/sendgrid/#sendgrid-message-id>`__;
also see `108`_.) Thanks to `joshkersey`_ for the report and the fix.

Features
~~~~~~~~

* Support Django 2.1 prerelease.

Fixes
~~~~~

* **Mailjet:** Fix tracking webhooks to work correctly when Mailjet "group events"
option is disabled (see `106`_).

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.)

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

----

*2018-04-16*

Fixes
~~~~~

* 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

----

*2018-04-11*

**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.

Features
~~~~~~~~

* **Amazon SES:** Add support for this ESP
(`docs <https://anymail.dev/en/stable/esps/amazon_ses/>`__).
* **SparkPost:** Add SPARKPOST_API_URL setting to support SparkPost EU and SparkPost
Enterprise
(`docs <https://anymail.dev/en/stable/esps/sparkpost/#std:setting-ANYMAIL_SPARKPOST_API_URL>`__).
* **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.)

Fixes
~~~~~

* **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.

Other
~~~~~

* Use tox to manage Anymail test environments (see contributor
`docs <https://anymail.dev/en/stable/contributing/#testing>`__).

Deprecations
~~~~~~~~~~~~

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

2.0

----

*2018-03-08*

Breaking changes
~~~~~~~~~~~~~~~~

* 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.
* 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.dev/en/stable/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.dev/en/stable/sending/django_email/#additional-headers>`__.

Features
~~~~~~~~

* **SendinBlue:** Add support for this ESP
(`docs <https://anymail.dev/en/stable/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.dev/en/stable/sending/anymail_additions/#anymail.message.AnymailMessage.envelope_sender>`__).
* Add universal wheel to PyPI releases for faster installation.

Other
~~~~~

* Update setup.py metadata, clean up implementation. (Hadn't really been touched
since original Djrill version.)
* Prep for Python 3.7.

Page 5 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.