Commit Graph

300 Commits

Author SHA1 Message Date
Mike Edmunds
397dcf5f8a Docs: prep for upcoming RTD build changes
Read the Docs is changing their build process. Some docs/conf.py
manipulation they used to do automatically now must be manually
included.

https://about.readthedocs.com/blog/2024/07/addons-by-default/

Related changes:

* Drop our version-alert.js. RTD's new "addons" includes
  equivalent warning on unreleased versions.

* Integrate Google Analytics via sphinxcontrib-googleanalytics
  when GOOGLE_ANALYTICS_ID is set in docs build environment.
2024-09-02 13:35:34 -07:00
Mike Edmunds
9d4fb5daf9 Docs: clarify use of Mailgun's inbound "raw MIME" option
Refs #389
2024-08-07 15:05:21 -07:00
Mike Edmunds
53dcc1e1b8 Docs: note inbound attachments doesn't include inlines
Closes #389
2024-08-07 12:30:09 -07:00
Luis Nell
d05f448891 Brevo: support proxy open, complained, error events
Add support for Brevo's new "Complained," "Error" and 
"Loaded by proxy" events in Brevo tracking webhook.

Closes #385.

---------

Co-authored-by: Mike Edmunds <medmunds@gmail.com>
2024-07-25 11:52:32 -07:00
Mike Edmunds
f86c019e1d Docs: Amazon SES: fix IAM policy recommendations
Correct IAM action permissions required for
Amazon SES v2 API.

Fixes #384
2024-07-11 12:37:22 -07:00
Mike Edmunds
2d9ca13cbf Docs: update third-party template packages 2024-07-11 11:52:55 -07:00
Mike Edmunds
c4b2e08b16 SparkPost: error on features incompatible with template_id
Raise an `AnymailUnsupportedFeature` error
when trying to use a `template_id` along with
other content payload fields that SparkPost
silently ignores when template_id is present.
2024-06-22 14:47:51 -07:00
Mike Edmunds
5c2f2fd35a Docs: add notes to esp-feature-matrix
Use footnotes to clarify some details
in the supported features table.

Closes #377
2024-06-22 12:58:50 -07:00
Mike Edmunds
f355bd533c Docs: new ownership for several ESPs
For ESPs that have incorporated new owners
in their branding, identify the new owner
in the docs:

- Mailgun -> Sinch Mailgun
- Postmark -> ActiveCampaign Postmark
- SendGrid -> Twilio SendGrid
- SparkPost -> Bird ???

(Bird's rebranding of SparkPost seems to still
be a work in progress at this point. In fact,
Bird's rebranding of itself from MessageBird
seems incomplete.)

There are no current plans to rename ESP
backends, as the new owners seem to be mostly
keeping the original ESP names and domains for
API endpoints, docs, etc.

(Similarly, I'm not updating project keywords.)
2024-06-22 11:09:15 -07:00
Mike Edmunds
faf98c22d7 MailerSend: support extra headers
MailerSend added a `"headers"` API field
(which is available to "Enterprise
accounts only").
2024-06-21 17:41:33 -07:00
Mike Edmunds
0776b12331 Feature: Implement merge_headers
Implement and document `merge_headers`
for all other ESPs that can support it. (See #371
for base and Amazon SES implementation.)

Closes #374
2024-06-20 15:31:58 -07:00
Mike Edmunds
0f2eef7300 Amazon SES: support headers with template
Use new SES v2 SendBulkEmail ReplacementHeaders param
to support features that require custom headers,
including `extra_headers`, `metadata`,
`merge_metadata` and `tags`.

Update integration tests and docs

Closes #375
2024-06-08 13:29:09 -07:00
Stan Triepels
e74e23247b Docs: Update links to SendGrid documentation
Twilio migrated SendGrid docs to a new domain.
Old links 404 now.
2024-05-22 15:30:06 -07:00
Dustin Wyatt
dc1ddfa739 Docs: Fix inbound headers example
Inbound example incorrectly used `EmailMessage.getall`; should be `get_all`.  https://docs.python.org/3.12/library/email.message.html#email.message.EmailMessage.get_all
2024-04-18 11:19:07 -07:00
Patrick Hintermayer
bf257ec3f2 docs(brevo): fix minor typo 2024-03-13 11:05:55 -07:00
Mike Edmunds
abb984485b Amazon SES: remove deprecated v1 support
- Remove deprecated amazon_sesv1 EmailBackend
- Remove deprecated amazon_sesv2 alias
  for amazon_ses EmailBackend
- Update docs
2024-03-12 13:38:45 -07:00
Mike Edmunds
c7ee59c3ca Brevo: Rename SendinBlue to Brevo
- Replace "SendinBlue" with "Brevo"
  throughout the code.
- Maintain deprecated compatibility
  versions on the old names/URLs.
  (Split into separate commit
  to make renamed files more
  obvious.)
- Update docs to reflect change,
  provide migration advice.
- Update integration workflow.
2024-03-11 18:46:52 -07:00
Mike Edmunds
e758579230 Docs: fix list spacing
Workaround sphinx-rtd-theme regression
on spacing in "open" lists.
2024-03-06 16:10:37 -08:00
Arondit
a71a0d9af8 Unisender Go: new ESP
Add support for Unisender Go

---------

Co-authored-by: Mike Edmunds <medmunds@gmail.com>
2024-03-05 11:38:40 -08:00
Mike Edmunds
a2c0ed6817 Docs: fix broken links in search results
Upgrade to sphinx-rtd-theme 2.0.x
to fix broken links in search results
(for searches rendered client side).

See https://github.com/sphinx-doc/sphinx/issues/11608#issuecomment-1684410476
and https://github.com/readthedocs/sphinx_rtd_theme/pull/1507
2024-02-29 15:09:06 -08:00
Mike Edmunds
706fce60ac Resend: support batch send
Add support for `merge_metadata`
and new Resend email/batch API.
2024-02-19 16:41:22 -08:00
Mike Edmunds
d2c56285c0 Docs: update Brevo feature matrix 2024-02-19 15:00:43 -08:00
Mike Edmunds
53546ffc19 Docs: simplify editing ESP feature matrix
Move the big ESP feature matrix table
into a CSV file for easier maintenance.

Remove the doc8 line-length exception
the old table needed.

Docutils csv-table directive doesn't
support colspan on the subheadings
like the old table did. Add some JS
that replicates the old behavior.
(The new table is still readable even
with JS disabled.)
2024-02-19 15:00:43 -08:00
Mike Edmunds
4f305131ee Brevo: add batch send support
Closes #353
2024-02-19 11:52:10 -08:00
Mike Edmunds
804cb76aa1 Docs: Update Brevo opened event
Brevo has stopped sending the opened
event on first open (along with the
unique_opened event), so change docs
to recommend enabling both.
2023-12-29 11:28:40 -08:00
Mike Edmunds
0b96612143 Docs: note alternative for Postmark 2023-10-25 12:47:17 -07:00
Mike Edmunds
88eccc67df Docs: fix bad MailerSend webhook examples 2023-10-25 12:36:40 -07:00
Mike Edmunds
b5ef492466 Resend: new ESP (#341)
Add support for Resend.com backend and webhooks.

Closes #341
2023-10-25 12:23:57 -07:00
Mike Edmunds
42dbfcf2c4 Docs: fix RTD Sphinx build, update deps 2023-08-25 12:35:08 -07:00
Mike Edmunds
6c5b6b76fc Mailgun (docs): Clarify API keys
Explain account-level "Mailgun API keys"
vs. domain-level "sending API keys."
2023-08-24 17:44:33 -07:00
Mike Edmunds
05afde0651 SendGrid: support multiple reply_to
Closes #325
2023-07-27 18:37:31 -07:00
Mike Edmunds
c8a5e13c89 Brevo: add inbound support
(Also adds "responses" to test requirements,
for mocking fetches of Brevo inbound
attachments.)

Closes #322
2023-07-27 18:26:57 -07:00
Léo Martinez
0ac248254e Inbound: improve inline content handling
* refactor: derive `AnymailInboundMessage` from `email.message.EmailMessage`
  rather than legacy Python 2.7 `email.message.Message`

* feat(inbound): replace confusing `inline_attachments` with `content_id_map`
  and `inlines`; rename `is_inline_attachment` to `is_inline`; deprecate old names 

Closes #328

---------

Co-authored-by: Mike Edmunds <medmunds@gmail.com>
2023-07-27 15:10:58 -07:00
sblondon
8a72f89e8a Sendinblue: rename to Brevo
* Update docs to (usually) refer to Brevo rather than Sendinblue
* Change SENDINBLUE_API_URL to api.brevo.com
   (same API is available on both domains)
* Leave code references (settings, backend name, webhook urls)
   unchanged as `sendinblue`, to avoid unnecessary client changes
2023-06-13 13:04:52 -07:00
Mike Edmunds
744d467f70 Postmark inbound: improve inbound parsing
- Support Postmark's RawEmail option;
  recommend it in docs
- Handle Bcc when provided by Postmark
- Obtain `envelope_sender` from Return-Path info
  Postmark now adds, rather than parsing Received-SPF

Related:
- Add `AnymailInboundMessage.bcc` convenience prop
- Test against full Postmark "check" inbound payloads
  (which don't match their docs or real inbound payloads)
- Don't warn about receiving "check" payload
2023-05-06 11:40:00 -07:00
Mike Edmunds
746cf0e24e Mandrill: drop Djrill compatibility 2023-05-04 13:08:05 -07:00
Mike Edmunds
41754d9813 Amazon SES: use SES v2 API by default
- Rename `anymail.backends.amazon_sesv2.EmailBackend`
  to `amazon_ses`, making SES v2 the default.
- Rename the old `amazon_ses` backend to `amazon_sesv1`,
  keeping it available. Add a deprecation warning.
- Alias `amazon_sesv2` to `amazon_ses`, with a
  deprecation warning (for projects that opted
  into v2 early under Anymail 9.1 or 9.2).
- Similar renaming on the test files.
- Update docs to assume v2 in most places
  (other than migration-specific sections)
2023-05-04 12:27:55 -07:00
Mike Edmunds
e8df0ec8e0 Modernize packaging
Switch to pyproject.toml packaging, using hatchling.

- Replace all uses of setup.py with updated equivalent
- BREAKING: Change extra name `amazon_ses` to
  `amazon-ses`, to comply with Python packaging
  name normalization
- Use hatch custom build hook to freeze version number
  in readme (previously custom setup.py code)
- Move separate requirements for dev, docs, tests
  into their own requirements.txt files
- Fix AnymailImproperlyInstalled to correctly refer
  to package extra name
- Update testing documentation
- Update docs readme rendering to match PyPI
  (and avoid setup.py)
- In tox tests, use isolated builds and update pip
- Remove AUTHORS.txt (it just referred to GitHub)
2023-05-03 16:55:08 -07:00
Mike Edmunds
62bd0669af MailerSend: add support (new ESP for Anymail)
Closes #298
2023-03-10 17:22:20 -08:00
Mike Edmunds
ea446a94d3 Amazon SES: implement SES v2 API backend
* Add `anymail.backends.amazon_sesv2.EmailBackend` using SES v2 API
* Declare current SES v1 backend as "deprecated"

Closes #274
2023-02-26 14:16:46 -08:00
medmunds
f5f3fc86e6 Simplify url patterns
Favor `django.urls.path` over `re_path` where possible.
2023-02-08 14:23:15 -08:00
medmunds
353e793323 Docs: update absolute links to anymail.dev
Canonical hosting for docs moved from anymail.readthedocs.io
to anymail.dev in May 2022.
2023-02-08 11:25:11 -08:00
medmunds
b4e22c63b3 Reformat code with automated tools
Apply standardized code style
2023-02-06 15:05:24 -08:00
medmunds
40891fcb4a Apply code styles via pre-commit
- Add black and isort for Python styling
- Add doc8 for reStructuredText styling
- Add prettier for css/html/js/md/yaml styling
- Run all styling tools from pre-commit hooks
- Adjust flake8 config for compatibility with black
  (and current Django style)
- Add some other helpful pre-commit hooks
- Update editorconfig to match Django
  (with a few necessary adjustments for Anymail)
- Update `tox -e lint` to run all pre-commit hooks
- Update contributing docs
2023-02-06 15:05:24 -08:00
medmunds
b86613cf15 Docs: add source repo link to main ToC
(Based on feedback from docs site.)
2022-12-18 16:20:24 -08:00
medmunds
287c2175f4 Sendinblue: Support send_at
Add support for delayed sending via
Sendinblue's public beta "scheduledAt"
parameter.

Closes #280
2022-12-18 15:53:45 -08:00
Jelte Fennema
a8cfb2e5eb Fix link to mailjet apikeys
The old link returns a 404 now
2022-12-18 12:22:43 -08:00
Tim Schilling
a4f50c4340 Confirm support for Django 4.1
Replaces deprecated `django.utils.timezone.utc` with
`datetime.timezone.utc` (available since Python 3.2).
2022-08-24 13:24:27 -07:00
David Gilman
e3cd4df1fc Allow requests session customization, document use for automatic retries
* Refactor create_session() out of AnymailRequestsBackend
* Document automatic retries with Requests
2022-06-26 18:52:46 -07:00
medmunds
a67a40957a Docs: update 'requests' intersphinx url
The python-requests docs ["official" location has changed][0]
to requests.readthedocs.io. (And the old domain is no longer live.)

[0]: https://github.com/psf/requests/issues/6140#issuecomment-1135071992
2022-05-28 09:40:20 -07:00