This release switches to modern Python packaging tools, drops compatibility for some seriously outdated environments, and improves Amazon SES and inbound Postmark handling.
Please see the Changelog for breaking changes and other details.
* **Amazon SES:** The Amazon SES backend now sends using the SES v2 API.
Most projects should not require code changes, but you may need to update
your IAM permissions. See
`Migrating to the SES v2 API <https://anymail.dev/en/stable/esps/amazon_ses/#amazon-ses-v2>`__.
If you were using SES v2 under Anymail 9.1 or 9.2, change your
EMAIL_BACKEND setting from amazon_sesv2 to just amazon_ses.
(If you are not ready to migrate to SES v2, an amazon_sesv1 EmailBackend
is available. But Anymail will drop support for that later this year. See
Using SES v1 (deprecated) <https://anymail.dev/en/stable/esps/amazon_ses/#amazon-ses-v1>__.)
Amazon SES: The "extra name" for installation must now be spelled with
a hyphen rather than an underscore: django-anymail[amazon-ses].
Be sure to update any dependencies specification (pip install, requirements.txt,
etc.) that had been using [amazon_ses]. (This change is due to
package name normalization rules enforced by modern Python packaging tools.)
Mandrill: Remove support for Mandrill-specific message attributes left over
from Djrill. These attributes have raised DeprecationWarnings since Anymail 0.3
(in 2016), but are now silently ignored. See
Migrating from Djrill <https://anymail.dev/en/v10.0/esps/mandrill/#djrill-message-attributes>__.
Require Python 3.7 or later.
Require urllib3 1.25 or later. (Drop a workaround for older urllib3 releases.
urllib3 is a requests dependency; version 1.25 was released 2019-04-29. Unless
you are pinning an earlier urllib3, this change should have no impact.)
Features
* **Postmark inbound:**
* Handle Postmark's "Include raw email content in JSON payload"
inbound option. We recommend enabling this in Postmark's dashboard
to get the most accurate representation of received email.
* Obtain ``envelope_sender`` from *Return-Path* Postmark now provides.
(Replaces potentially faulty *Received-SPF* header parsing.)
* Add *Bcc* header to inbound message if provided. Postmark adds bcc
when the delivered-to address does not appear in the *To* header.
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/anymail/django-anymail/commit/099ef314e4625a225ae929aa30d657d9f872c616"><code>099ef31</code></a> Release 10.0</li>
<li><a href="https://github.com/anymail/django-anymail/commit/a3ad0254cf9be06f92fe3d3f7b5be3f5499dd7b2"><code>a3ad025</code></a> CI: Simplify test PyPI release</li>
<li><a href="https://github.com/anymail/django-anymail/commit/744d467f702e50e78370e0cb1245746fcc0cdf79"><code>744d467</code></a> Postmark inbound: improve inbound parsing</li>
<li><a href="https://github.com/anymail/django-anymail/commit/746cf0e24e8cb67345e4eed6b922bad433e1334d"><code>746cf0e</code></a> Mandrill: drop Djrill compatibility</li>
<li><a href="https://github.com/anymail/django-anymail/commit/41754d981373a72a49c217f61057d0dc9c14eabe"><code>41754d9</code></a> Amazon SES: use SES v2 API by default</li>
<li><a href="https://github.com/anymail/django-anymail/commit/2335b9cfc8800b8bf03a016504b20f1a3b9ef3e8"><code>2335b9c</code></a> Fix ReadTheDocs build</li>
<li><a href="https://github.com/anymail/django-anymail/commit/e8df0ec8e01fd6fb57f63f4e78c50daf95d2bf2b"><code>e8df0ec</code></a> Modernize packaging</li>
<li><a href="https://github.com/anymail/django-anymail/commit/9fba58237d28e910eeba134cd07be4cefb9ec185"><code>9fba582</code></a> Drop support for Python 3.6 and old urllib3</li>
<li><a href="https://github.com/anymail/django-anymail/commit/485766182e48cd7777ca2981e3fa3dace19bf766"><code>4857661</code></a> Release 9.2</li>
<li><a href="https://github.com/anymail/django-anymail/commit/7d993ee61095d9d31b6c60d01bd31a8c1e26e63f"><code>7d993ee</code></a> Fix fail_silently when session/client creation fails</li>
<li>Additional commits viewable in <a href="https://github.com/anymail/django-anymail/compare/v9.1...v10.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=django-anymail&package-manager=pip&previous-version=9.1&new-version=10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps django-anymail from 9.1 to 10.0.
Release notes
Sourced from django-anymail's releases.
Changelog
Sourced from django-anymail's changelog.