Django-anymail

Latest version: v10.3

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

Scan your dependencies

Page 3 of 10

8.1

----

*2020-10-09*

Features
~~~~~~~~

* **SparkPost:** Add option for event tracking webhooks to map SparkPost's "Initial Open"
event to Anymail's normalized "opened" type. (By default, only SparkPost's "Open" is
reported as Anymail "opened", and "Initial Open" maps to "unknown" to avoid duplicates.
See `docs <https://anymail.dev/en/stable/esps/sparkpost/#sparkpost-webhooks>`__.
Thanks to `slinkymanbyday`_.)

* **SparkPost:** In event tracking webhooks, map AMP open and click events to the
corresponding Anymail normalized event types. (Previously these were treated as
as "unknown" events.)

8.0

----

*2020-09-11*

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

* Require **Django 2.0 or later** and Python 3. (For compatibility with Django 1.11 and
Python 2.7, stay on the Anymail `v7.2 LTS`_ extended support branch by setting your
requirements to `django-anymail~=7.2`.)

* **Mailjet:** Upgrade to Mailjet's newer v3.1 send API. Most Mailjet users will not
be affected by this change, with two exceptions: (1) Mailjet's v3.1 API does not allow
multiple reply-to addresses, and (2) if you are using Anymail's `esp_extra`, you will
need to update it for compatibility with the new API. (See
`docs <https://anymail.dev/en/stable/esps/mailjet/#esp-extra-support>`__.)

* **SparkPost:** Call the SparkPost API directly, without using the (now unmaintained)
Python SparkPost client library. The "sparkpost" package is no longer necessary and
can be removed from your project requirements. Most SparkPost users will not be
affected by this change, with two exceptions: (1) You must provide a
``SPARKPOST_API_KEY`` in your Anymail settings (Anymail does not check environment
variables); and (2) if you use Anymail's `esp_extra` you will need to update it with
SparkPost Transmissions API parameters.

As part of this change esp_extra now allows use of several SparkPost features, such
as A/B testing, that were unavailable through the Python SparkPost library. (See
`docs <https://anymail.dev/en/stable/esps/sparkpost/>`__.)

* Remove Anymail internal code related to supporting Python 2 and older Django
versions. This does not change the documented API, but may affect you if your
code borrowed from Anymail's undocumented internals. (You should be able to switch
to the Python standard library equivalents, as Anymail has done.)

* AnymailMessageMixin now correctly subclasses Django's EmailMessage. If you use it
as part of your own custom EmailMessage-derived class, and you start getting errors
about "consistent method resolution order," you probably need to change your class's
inheritance. (For some helpful background, see this comment about
`mixin superclass ordering <https://nedbatchelder.com/blog/201210/multiple_inheritance_is_hard.html#comment_13805>`__.)

Features
~~~~~~~~

* **SparkPost:** Add support for subaccounts (new ``"SPARKPOST_SUBACCOUNT"`` Anymail
setting), AMP for Email (via ``message.attach_alternative(..., "text/x-amp-html")``),
and A/B testing and other SparkPost sending features (via ``esp_extra``). (See
`docs <https://anymail.dev/en/stable/esps/sparkpost/>`__.)

7.2.1

------

*2020-08-05*

Fixes
~~~~~

* **Inbound:** Fix a Python 2.7-only UnicodeEncodeError when attachments have non-ASCII
filenames. (Thanks to `kika115`_ for reporting it.)

7.2

--------

*2020-07-25*

This is an extended support release. Anymail v7.2 will receive security updates
and fixes for any breaking ESP API changes through at least July, 2021.

Fixes
~~~~~

* **Amazon SES:** Fix bcc, which wasn't working at all on non-template sends.
(Thanks to `mwheels`_ for reporting the issue.)

* **Mailjet:** Fix TypeError when sending to or from addresses with display names
containing commas (introduced in Django 2.2.15, 3.0.9, and 3.1).

* **SendGrid:** Fix UnicodeError in inbound webhook, when receiving message using
charsets other than utf-8, and *not* using SendGrid's "post raw" inbound parse
option. Also update docs to recommend "post raw" with SendGrid inbound. (Thanks to
`tcourtqtm`_ for reporting the issue.)


Features
~~~~~~~~

* Test against Django 3.1 release candidates


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

* This will be the last Anymail release to support Django 1.11 and Python 2.7.

If these deprecations affect you and you cannot upgrade, set your requirements to
`django-anymail~=7.2` (a "compatible release" specifier, equivalent to `>=7.2,==7.*`).

7.1

-----

*2020-04-13*

Fixes
~~~~~

* **Postmark:** Fix API error when sending with template to single recipient.
(Thanks to `jc-ee`_ for finding and fixing the issue.)

* **SendGrid:** Allow non-batch template send to multiple recipients when
`merge_global_data` is set without `merge_data`. (Broken in v6.0. Thanks to
`vgrebenschikov`_ for the bug report.)

Features
~~~~~~~~

* Add `DEBUG_API_REQUESTS` setting to dump raw ESP API requests, which can assist
in debugging or reporting problems to ESPs.
(See `docs <https://anymail.dev/en/stable/installation/#std:setting-ANYMAIL_DEBUG_API_REQUESTS>`__.
This setting has was quietly added in Anymail v4.3, and is now officially documented.)

* **Sendinblue:** Now supports file attachments on template sends, when using their
new template language. (Sendinblue removed this API limitation on 2020-02-18; the
change works with Anymail v7.0 and later. Thanks to `sebashwa`_ for noting
the API change and updating Anymail's docs.)

Other
~~~~~

* Test against released Django 3.0.

* **SendGrid:** Document unpredictable behavior in the SendGrid API that can cause
text attachments to be sent with the wrong character set.
(See `docs <https://anymail.dev/en/stable/esps/sendgrid/#limitations-and-quirks>`__
under "Wrong character set on text attachments." Thanks to `nuschk`_ and `swrobel`_
for helping track down the issue and reporting it to SendGrid.)

* Docs: Fix a number of typos and some outdated information. (Thanks `alee`_ and
`Honza-m`_.)

7.0

----

*2019-09-07*

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

* **Sendinblue templates:** Support Sendinblue's new (ESP stored) Django templates and
new API for template sending. This removes most of the odd limitations in the older
(now-deprecated) SendinBlue template send API, but involves two breaking changes:

* You *must* `convert <https://help.sendinblue.com/hc/en-us/articles/360000991960>`_
each old Sendinblue template to the new language as you upgrade to Anymail v7.0, or
certain features may be silently ignored on template sends (notably `reply_to` and
recipient display names).

* Sendinblue's API no longer supports sending attachments when using templates.
[Note: Sendinblue removed this API limitation on 2020-02-18.]

Ordinary, non-template sending is not affected by these changes. See
`docs <https://anymail.dev/en/stable/esps/sendinblue/#batch-sending-merge-and-esp-templates>`__
for more info and alternatives. (Thanks `Thorbenl`_.)

Features
~~~~~~~~

* **Mailgun:** Support Mailgun's new (ESP stored) handlebars templates via `template_id`.
See `docs <https://anymail.dev/en/stable/esps/mailgun/#batch-sending-merge-and-esp-templates>`__.
(Thanks `anstosa`_.)

* **Sendinblue:** Support multiple `tags`. (Thanks `Thorbenl`_.)


Other
~~~~~

* **Mailgun:** Disable Anymail's workaround for a Requests/urllib3 issue with non-ASCII
attachment filenames when a newer version of urllib3--which fixes the problem--is
installed. (Workaround was added in Anymail v4.3; fix appears in urllib3 v1.25.)

Page 3 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.