medmunds
57d0695ac0
Reformat code with automated tools
...
- Update blame-ignore-revs
2023-02-06 15:05:24 -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
52c7c11312
Release 9.0
2022-12-18 16:27:36 -08:00
medmunds
416d7d433c
CI: remove workaround for broken PyPY sqlite release
2022-12-18 16:20:24 -08:00
medmunds
07f5d5f224
CI: update action dependencies
...
Fixes Node 12 deprecation warnings.
- actions/checkout@v2 --> v3
- actions/setup-python@v2 --> v4
- fkirc/skip-duplicate-actions@v3.4.1 --> v5.3.0
[pinned to hash]
Also set continue-on-error true in skip_duplicate_runs job,
per recommendation in skip-duplicate-actions release notes.
2022-12-18 16:20: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
medmunds
d37f4ef109
Fix test workflows (again)
...
Pin to tox v3 for now - in one more place.
2022-12-15 16:29:27 -08:00
medmunds
e9f3444daa
Fix test workflows
...
Pin to tox v3 for now.
(tox plugins aren't ready for tox v4 yet.)
2022-12-15 09:54:44 -08:00
medmunds
681a4afe6b
Sendinblue: fix "invalid headers" error
...
Work around recent (unannounced) Sendinblue API change
that caused "Invalid headers" API error with non-string
custom header values, by converting basic numeric types
to strings. (Borrowed code from SendGrid backend.)
Fixes #288
2022-11-04 16:46:25 -07:00
medmunds
448e8d9d95
Tests: move integration tests to Django 4.1
2022-08-29 13:25:47 -07:00
medmunds
3f05623a2f
Drop support for Django 2.x and Python 3.5
2022-08-29 13:25:47 -07: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
medmunds
6b3775a8e9
Tests: fix SparkPost integration test
...
SparkPost has changed http status for bad API key
from 403 Forbidden to 401 Unauthorized.
2022-07-28 14:29:29 -04:00
medmunds
748ac9fea7
Tests: fix SparkPost integration test
...
SparkPost has switched http status for bad API key.
2022-07-28 11:56:19 -04: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
puru02
48de044c9b
Fix: Postmark tracking webhook handle SubscriptionChange events
...
Handle Postmark SubscriptionChange events as Anymail
unsubscribe, subscribe, or bounce Anymail tracking events.
2022-06-07 17:28:39 -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
medmunds
ad08892eb0
Release 8.6
2022-05-15 10:11:00 -07:00
medmunds
2001b1ce2a
Update ESP list in PyPI description, keywords
2022-05-15 10:05:25 -07:00
medmunds
09f21a5c2d
Mailgun/SendGrid inbound: workaround Django filename issue
...
Workaround for Django multipart/form-data limitation
where certain attachment filenames cause fields to be dropped
or to end up in request.POST rather than request.FILES.
Handle the MultiValueDictKeyError in inbound webhooks when
this has occurred. Also update docs to recommend avoiding
the problem by using Mailgun and SendGrid's "raw MIME" options.
Also handle reported cases of empty, duplicate keys in Mailgun's
content-id-map.
Fixes #272
2022-05-13 10:19:12 -07:00
medmunds
6a2e30ba8f
Docs: note Mailgun broken display name encoding
...
Document that Mailgun's API can mis-encode
display names containing both punctuation and
non-ASCII characters.
Closes #270
2022-05-03 15:27:05 -07:00
medmunds
33af7c387d
Docs: note Mandrill broken attachment filenames
2022-05-03 13:20:31 -07:00
medmunds
d22f03c751
Docs: update Mandrill info
...
* Update "limited support" note to reflect
availability of Mandrill trial account
* Update links to Mandrill docs
2022-05-03 13:18:32 -07:00
medmunds
4656b3d6dc
Readme: clarify intro; update ESP list; update docs links
2022-05-03 12:02:17 -07:00
medmunds
c7288b9b72
CI: Work around outdated pypy-3.8-v7.3.8 sqlite
...
pypy-3.8-v7.3.8 accidentally shipped with sqlite v3.7.17,
which is a decade old, and causes the tests to fail with
`django.core.exceptions.ImproperlyConfigured:
SQLite 3.9.0 or later is required`.
Until pypy-3.8-v7.3.9 is available in actions/setup-python,
work around the problem by forcing unqualified "pypy-3.8"
to specific (older) version "pypy-3.8-v7.3.7".
See https://foss.heptapod.net/pypy/pypy/-/issues/3690
and https://github.com/actions/setup-python/issues/339 .
2022-03-17 11:58:34 -07:00
medmunds
ddeb938a3c
Mandrill: re-enable integration tests
...
Get Mandrill integration tests working again,
by using a test-mode API key and a trial account.
2022-02-02 16:36:11 -08:00
medmunds
41147b581c
Mandrill: don't send unnecessary empty fields
...
Don't add empty Reply-To header and empty display names
to Mandrill send API data.
Fixes #262
2022-02-02 16:36:11 -08:00
Mike Edmunds
5fdc285e82
CI/Docs: move to anymail.dev
...
Move all integration tests and contact emails to anymail.dev.
(Stop using anymail.info.)
2022-02-02 13:59:09 -08:00
medmunds
4d93183e5e
CI: get GitHub test matrix from tox envlist
...
Stop maintaining duplicate (and often not-quite-
in-sync) test matrices in tox.ini and test.yml.
2022-01-30 11:11:41 -08:00
medmunds
3572ec59c9
Release 8.5
2022-01-19 14:57:24 -08:00
medmunds
bb8e583f06
Tests: clean up env var handling
...
* Replace deprecated strtobool
* Strip whitespace from env values
2022-01-19 14:54:29 -08:00
medmunds
d3730f08a2
Docs: cover testing tracking and inbound webhooks
2022-01-19 14:49:50 -08:00
medmunds
a868bf3bca
Docs: cover Postmark limitation on track_opens
...
Note that Postmark doesn't support `track_opens = False`
when open tracking is enabled at the server level.
(But does support the opposite usage.)
2022-01-19 14:49:50 -08:00
medmunds
2b146c12d3
Docs: update intersphinx links
...
* Python 3.7 --> 3.10
* Requests has moved again
2022-01-19 14:49:50 -08:00
medmunds
dc0a46a815
Feature: add is_batch_send to anymail_test_params
...
Make it easier for tests to check whether messages
would fall under Anymail's batch-send logic.
See #249 .
2022-01-11 19:54:39 -08:00
medmunds
10f569cd50
Fix: don't include sender/recipient in AnymailError description
...
Remove `AnymailError.describe_send`, which added sender and
recipient email addresses to every AnymailError message
(whether or not relevant to the error).
Addresses #245
2022-01-11 17:03:03 -08:00
medmunds
60fbe1e896
Fix: treat first text/plain alternative as plaintext body
...
Improve handling of alternative parts and `content_subtype`
to match how Django's SMTP backend handles some unusual cases.
Change Test backend to support (and record) text/* alternative
parts. (But still reject other types of alternatives.)
Fixes #252
2022-01-10 15:35:00 -08:00
Andrew Chen Wang
28247ec042
Packaging: Update trove classifiers
2022-01-10 13:57:21 -08:00
medmunds
e8a802b7ad
CI: Upgrade skip-duplicates in integration tests
2022-01-10 13:42:45 -08:00
medmunds
8b0425f784
CI: Refactor workflows, update test matrix
...
* Split test, integration-test, and release workflows,
simplifying config and logic for each.
* Use environment to separate secrets for release workflow.
* Update test matrix with newer Django and Python versions.
2022-01-10 13:42:45 -08:00
medmunds
26d2b5caa0
Release 8.4
2021-06-15 16:34:12 -07:00
Mike Edmunds
d79c3c2c05
Automate release process
...
Update GitHub workflow to automatically release
when tagged with v* (following successful tests).
2021-06-15 16:23:08 -07:00
Mike Edmunds
adc92f037b
Tests: tox and mock cleanup
...
* Remove mock dependency
(mock is now part of standard unittest package)
* Cleanup tox dependency installation logic
2021-06-13 12:13:31 -07:00
Tilmann Becker
e90c10b546
Add Postal support
...
Thanks to @tiltec for researching, implementing, testing and documenting it.
2021-06-07 17:11:35 -07:00
medmunds
f831fe814a
Release 8.3
2021-05-19 13:51:45 -07:00
medmunds
67bf5a5912
CI: split lint, docs jobs
...
(They had been combined to minimize Travis-CI jobs;
not an issue with GitHub Workflows.)
2021-05-19 13:48:22 -07:00
medmunds
3a03b196b8
Tests: run Django 3.2 first
...
Update tox.ini for Django 3.2 release
2021-05-19 13:48:22 -07:00