Skip to content

Update dependency django-anymail to v15#243

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/django-anymail-15.x
Open

Update dependency django-anymail to v15#243
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/django-anymail-15.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Apr 18, 2026

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
django-anymail (changelog) >=13.0.0,<14>=15,<16 age adoption passing confidence

Release Notes

anymail/django-anymail (django-anymail)

v15.0

Compare Source

2026-04-18

Breaking changes


* Require **Django 5.0 or later** and Python 3.10 or later.
  (Thanks to `@terencehonles`_.)

Features
~~~~~~~~

* **Resend:** Add support for inbound email. (Thanks to `@btimby`_.)

Fixes
~~~~~

* **Inbound:** Convert carriage return and line feed characters in attachment
  filenames to spaces for ESPs that parse them from invalid headers (e.g.,
  Postmark). (Thanks to `@BHSPitMonkey`_ for reporting the issue and providing
  an example.)

v14.0
-----

*2025-12-17*

This release improves handling of Unicode characters everywhere email messages
allow them, based on extensive testing on all supported ESPs. See
`International email <https://anymail.dev/en/stable/tips/international_email/#idna>`_
in the docs for more information. There are several new workarounds for ESP
bugs with non-ASCII characters, plus a handful of new errors to help you avoid
Unicode bugs Anymail can't work around.

This release also includes support for Django 6.0 (earlier versions worked,
but provoked deprecation warnings) and adds the much-requested ESP Mailtrap.

Breaking changes

(These changes don't affect the vast majority of Anymail users.)

  • International domain names: When sending email to a non-ASCII domain name,
    use IDNA 2008 with UTS-46 pre-processing rather than obsolete IDNA 2003
    encoding. This ensures email can be sent to newer domains enabled by IDNA 2008.

    This change should make no difference for virtually all real-world email
    addresses that worked with earlier Anymail releases. But trying to send to
    emoji domains or others no longer allowed by IDNA 2008 will now raise an
    AnymailInvalidAddress error.

    To restore the old behavior or select a different encoding, use the new
    IDNA_ENCODER setting. See
    Domains (IDNA) <https://anymail.dev/en/stable/tips/international_email/#idna>_
    in the docs.

    As part of this change, Anymail now has a direct dependency on the idna
    package. (It was already being installed as a sub-dependency of requests.)

  • Brevo: Raise an error if metadata or custom header values include Unicode
    characters. This avoids a Brevo API bug that sends unencoded 8-bit headers,
    which can cause bounces or dropped messages.

  • Mailgun: Raise an error if the from_email uses EAI (has a Unicode
    local part). This avoids a Mailgun API bug that generates undeliverable
    messages.

  • Resend: Raise an error if an attachment's filename has an extension that
    doesn't match its content type. This tries to help you avoid a Resend API bug
    that can silently drop sent messages.

  • Scaleway TEM: Raise an error if any address field uses EAI (has a Unicode
    local part). This avoids a Scaleway API bug that generates undeliverable messages.

Features


* Support Django 6.0.

* Allow Python's modern MIMEPart object as attachments (new in Django 6.0).
  Use MIMEPart for Anymail's ``attach_inline_image`` helpers under Django 6.0
  and later.

* **Mailtrap:** Add support for this ESP.
  (See `docs <https://anymail.dev/en/stable/esps/mailtrap/>`__.
  Thanks to `@cahna`_ for the contribution.)

* **Resend:** Add support for inline images. Identify attachment content type
  using new API parameter, including accurately specifying charset for
  non-ASCII text attachments. (See related Resend breaking change above.)

Fixes
~~~~~

* Handle sending attached messages (e.g., forwarded emails) consistently with
  Django's SMTP EmailBackend.

* Exempt webhooks from Django's LoginRequiredMiddleware.
  (Thanks to `@Zerotask`_ for reporting the issue.)

* **Brevo, Mailgun, Mandrill, Postal, Postmark, Scaleway TEM, Unisender Go:**
  Fix Anymail bugs that could cause text attachments with Unicode content
  to display incorrectly in some email clients.

* **Brevo:** Work around a Brevo API bug which loses Unicode display names
  that also contain a comma or certain other punctuation.

* **Mailgun:** Use ``"attachment"`` as the default attachment filename (rather
  than raising an error) for consistency with Anymail's handling of missing
  attachment filenames in other ESPs.

* **Postmark:** Prevent a KeyError in the tracking webhook when handling
  an unsubscribe request due to a bounce. (Thanks to `@dshunfen`_ for reporting
  the issue.)

Other
~~~~~

* **Brevo:** Document a Brevo API bug that causes Unicode attachment
  filenames to display incorrectly in some email clients.

* **Mandrill:** Document a Mandrill API bug that can cause an address with a
  Unicode display name to display incorrectly in some email clients.

* **SendGrid:** Document a SendGrid API bug that causes Unicode attachment
  filenames to display incorrectly in some email clients. Clarify handling and
  documentation of SendGrid API bugs around text attachment content encoding.

* **Unisender Go:** Document a Unisender Go API bug that can cause an Reply-To
  address (only) with a Unicode display name to display incorrectly in some
  email clients.

Deprecations
  • This will be the last Anymail release to support Django 4.0 and 4.1,
    which reached end of extended support on 2023-04-01 and 2023-12-01,
    respectively. (Anymail will continue to support Django 4.2 at least
    through its end of extended support in April, 2026.)

  • This will be the last Anymail release to support Python 3.8 and 3.9,
    which reached end of life on 2024-10-07 and 2025-10-31, respectively.

v14.0

Compare Source

This release improves handling of Unicode characters everywhere email messages allow them, based on extensive testing on all supported ESPs. See International email in the docs for more information. There are several new workarounds for ESP bugs with non-ASCII characters, plus a handful of new errors to help you avoid Unicode bugs Anymail can't work around.

This release also includes support for Django 6.0 and adds the much-requested ESP Mailtrap.

See the Changelog for breaking changes and a full list of other features and fixes.

v13.1

Compare Source

Changelog


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants