Commit Graph

94 Commits

Author SHA1 Message Date
medmunds
51d2a404c0 Test/support Django 2.1 2018-05-24 11:49:35 -07:00
Mike Edmunds
ef69fa3bf7 Amazon SES support
Integrate Amazon SES.

Closes #54.
2018-04-11 10:35:23 -07:00
medmunds
1e7aacdcb4 SendinBlue: update docs, readme, setup, Travis config
* Flesh out SendinBlue docs, add a readme mention
* Stop trying to list all the supported ESPs in the project short
  description and similar headlines -- it was becoming unwieldy.
* Support `pip install django-anymail[sendinblue]`
  and use it in Travis tests (for consistency; SendinBlue
  doesn't require any extra packages)
2018-03-01 17:29:57 -08:00
Mike Edmunds
b57eb94f64 Add inbound mail handling
Add normalized event, signal, and webhooks for inbound mail.

Closes #43
Closes #86
2018-02-02 10:38:53 -08:00
medmunds
9e1f9fbcdc Tests: Test Django 2.0a 2017-10-11 15:30:39 -07:00
medmunds
01f56ae2b0 Prep for 1.0 release
* Remove "pre-1.0" warnings in docs, readme
* Jump trove classifer from pre-alpha all the way up to stable
  (arguably this should have been "beta" for the past several months)
2017-09-08 17:16:18 -07:00
medmunds
54d2fe2513 Mailjet: add docs 2017-07-13 15:43:11 -07:00
medmunds
9e641169e3 Docs: update readme and index
* Remove readme link to unreleased dev docs
* Match pre-1.0 disclaimer in docs index
  to earlier update in readme
2017-01-26 12:09:53 -08:00
medmunds
bcd0350295 Readme: fix external docs/build links
* The default (GitHub) readme should point
  to the stable docs version, rather than
  the latest development version.
* The frozen links in PyPI should use the full
  patch version number (X.Y.Z), not just the minor
  X.Y version. (Leftover from Djrill's branch-based
  version management; Anymail uses tags
  for versions, and old way was creating incorrect
  frozen doc links for patch releases.)
2017-01-26 11:48:43 -08:00
medmunds
0973618623 Docs: update readme
* "early development" --> "pre-1.0"
* Add Django 1.11 support

[ci skip]
2017-01-22 11:49:46 -08:00
medmunds
79288603fb Rename EmailBackends for Django consistency
* **Future breaking change:**
  Rename all Anymail backends to just `EmailBackend`,
  matching Django's naming convention.
  (E.g., switch to "anymail.backends.mailgun.EmailBackend"
  rather than "anymail.backends.mailgun.MailgunBackend".)

  The old names still work, but will issue a DeprecationWarning
  and will be removed in some future release.

  (Apologies for this change; the old naming convention was
  a holdover from Djrill, and I wanted consistency with
  other Django EmailBackends before hitting 1.0.)

Fixes #49.
2017-01-20 15:47:37 -08:00
medmunds
e78410eea4 Docs: remove references to future inbound handling
(Postponed -- see discussion or vote to reopen in #4)

[ci skip]
2016-11-01 11:46:49 -07:00
medmunds
1cced97f65 Docs: clarify INSTALLED_APPS
* Trailing comma after "anymail" (see #40)
* Note order doesn't matter
* Change tuple to list (match examples to
  Django 1.9+ project template)

[ci skip]
2016-11-01 11:36:50 -07:00
medmunds
fb21c0d25b Mailgun: Add MAILGUN_SENDER_DOMAIN setting
Allow custom MAILGUN_SENDER_DOMAIN in Anymail
settings. (Replaces need to use global esp_extra.)

Improve docs to cover cases where this is needed.

(esp_extra sender_domain is still supported for
overriding individual messages.)

Fixes #26.
2016-08-03 14:19:35 -07:00
Mike Edmunds
db101bf6b9 Add SparkPost support (#20)
Implement SparkPost backend and tracking webhooks.

Closes #11.
2016-06-22 15:31:30 -07:00
medmunds
296f6cab50 Test Django 1.10
Also includes:
* Change AnymailTestMixin.assertDoesNotWarn
  to filter specific warning classes.
* Look specifically for AnymailInsecureWebhookWarning
  in WebhookBasicAuthTestsMixin.test_warns_if_no_auth
  (because we don't care *in that test case* about
  DeprecatedInDjango10 warnings).
2016-05-29 17:34:51 -07:00
medmunds
75730e8219 Add ESP templates, batch send and merge
* message.template_id to use ESP stored templates
* message.merge_data and merge_global_data
  to supply per-recipient/global merge variables
  (with or without an ESP stored template)
* When using per-recipient merge_data, tell ESP to use
  batch send: individual message per "to" address.
  (Mailgun does this automatically; SendGrid requires
  using a different "to" field; Mandrill requires
  `preserve_recipients=False`; Postmark doesn't
  support *this type* of batch sending with merge data.)
* Allow message.from_email=None (must be set after
  init) and message.subject=None to suppress those
  fields in API calls (for ESPs that allow "From" and
  "Subject" in their template definitions).

Mailgun:
* Emulate merge_global_data by copying to
  recipient-variables for each recipient.

SendGrid:
* Add delimiters to merge field names via
  esp_extra['merge_field_format'] or
  ANYMAIL_SENDGRID_MERGE_FIELD_FORMAT setting.

Mandrill:
* Remove Djrill versions of these features;
  update migration notes.

Closes #5.
2016-05-06 12:27:11 -07:00
medmunds
271eb5c926 Update RTD links to readthedocs.io
(RTD is migrating doc hosting from
readthedocs.org to readthedocs.io.)

[ci skip]
2016-04-30 11:28:07 -07:00
medmunds
a26d284772 Update readme for 0.2 2016-04-29 18:16:02 -07:00
medmunds
bb8494263f Readme: add RTD badge
[ci skip]
2016-03-16 09:40:27 -07:00
medmunds
1a1e5ba1a8 docs: update tagline 2016-03-14 13:42:56 -07:00
medmunds
fed98b14a8 install: remove need to name [esp]
Simplify install to just `pip install django-anymail`.
(Rather than `... django-anymail[mailgun]`

All of the ESPs so far require requests, so just move
that into the base requirements. (Chances are your
Django app already needs requests for some other
reason, anyway.)

Truly unique ESP dependencies (e.g., boto for
AWS-SES) could still use the setup extra features
mechanism.
2016-03-14 13:26:06 -07:00
medmunds
34d6676afa Add Postmark support 2016-03-14 11:06:45 -07:00
medmunds
c6d6b5dc09 Readme: SendGrid is here now (not coming soon) 2016-03-11 19:33:10 -08:00
medmunds
54827579d3 Improve inline-image handling
* Add filename param to attach_inline_image

* Add attach_inline_image_file function
  (parallels EmailMessage.attach and attach_file)

* Use `Content-Disposition: inline` to decide
  whether an attachment should be handled inline
  (whether or not it's an image, and whether or not
  it has a Content-ID)

* Stop conflating filename and Content-ID, for
  ESPs that allow both. (Solves problem where
  Google Inbox was displaying inline images
  as attachments when sent through SendGrid.)
2016-03-11 19:14:11 -08:00
medmunds
3e3c97d6d3 Readme: missed a Djrill --> Anymail 2016-03-10 18:05:49 -08:00
medmunds
b6bbdf4791 The *package* name is "django-anymail"
(not just "anymail")
2016-03-09 20:27:44 -08:00
medmunds
c13ef4d5fa Travis does svg badges now
[ci skip]
2016-03-09 20:12:42 -08:00
medmunds
6ef1349b65 GitHub doesn't like Sphinx directives in rst 2016-03-09 19:30:34 -08:00
medmunds
20c6350140 Update (almost) all the docs 2016-03-09 18:37:11 -08:00
medmunds
7706a5d39f Docs: 2.0 upgrade guide, release notes 2015-12-02 18:25:26 -08:00
medmunds
265c7460e0 Support Django 1.9 release 2015-12-02 16:59:34 -08:00
medmunds
da260de1a0 Drop support for Django 1.3, Python 2.6 and 3.2.
* Shrink the Travis test matrix
* Remove a lot of backported test code
* Update requirements in setup.py
* Update docs

Closes #79
2015-05-14 11:39:57 -07:00
medmunds
99ac099081 Remove DjrillAdminSite
Closes #78
2015-05-14 11:00:52 -07:00
medmunds
651292fd24 Note Django DEFAULT_FROM_EMAIL in docs.
Ref https://github.com/brack3t/Djrill/issues/69#issuecomment-74062569
2015-05-13 17:58:55 -07:00
medmunds
d91e2c2f91 Adopt semver
Djrill's been practicing semver since 1.0; make it official now.
2015-05-11 17:00:32 -07:00
medmunds
8ab36d2cd0 Django 1.8 alpha 1 support
* Test on Python 2.7, 3.4, pypy.
* Call super.setUpClass in DjrillAdminTests.
  https://docs.djangoproject.com/en/dev/releases/1.8/#overriding-setupclass-teardownclass-in-test-cases

Also clear up some new PendingDeprecationWarnings, where
the changes can easily remain compatible back to Django 1.3:

* Remove deprecated django.conf.urls.patterns.
  (And match Django recommendations in our docs.)
  https://docs.djangoproject.com/en/dev/releases/1.8/#django-conf-urls-patterns
* Remove deprecated SimpleTestCase.urls.
  (We've already back-ported @override_settings
  for testing older Django versions.)
  https://docs.djangoproject.com/en/dev/releases/1.8/#django-test-simpletestcase-urls
2015-01-16 16:17:31 -08:00
medmunds
a8ff2ad39e Update tests, readme for Django 1.7 release 2014-09-29 12:03:37 -07:00
Omer Katz
44b51188a9 Added a note about PyPy support to the README file. 2014-07-15 11:54:54 +03:00
medmunds
1e39e4d5c8 Start testing Django 1.7b1 2014-04-20 14:45:29 -07:00
medmunds
6d7e14ffc4 Fix links to outdated 'master' in RTD.
ReadTheDocs hosts master (dev branch) docs under /latest.
(Old /master was not building regularly.)
2014-01-25 12:44:32 -08:00
medmunds
6ebd5d1342 Docs: remove references to "approved sending domains".
Mandrill dropped the requirement for pre-approving the from_email address a while back.
2014-01-25 11:36:46 -08:00
medmunds
b1b049962c Django 1.6 released 2013-11-09 10:43:40 -08:00
medmunds
c3da043260 Document webhook support 2013-04-17 16:02:29 -07:00
medmunds
1d250d970d Readme: fix comments that broke PyPI; update Travis image url 2013-03-06 11:31:02 -08:00
medmunds
63b5db7b9a Readme point to 'master' version of docs 2013-03-05 16:03:17 -08:00
medmunds
9211c74144 Clean up version numbering and readme/description/docs sharing 2013-03-05 15:33:52 -08:00
medmunds
ea72b2d790 DRY up duplicate content in the readme and docs index page.
* Don't maintain similar overview in README.rst and docs/index.rst -- instead just include relevant portions of readme in the docs
* Patch up README version numbers and doc links in setup.py long_description to freeze them to the version being setup
* Suppress the Travis build status indicator in the docs and PyPI, since it can't be frozen to the specific version in question
2013-03-04 20:25:10 -08:00
medmunds
28538a5391 Docs: break apart the lengthy readme into organized docs
Also sphinx-ify where appropriate, and lots of general cleanup/editing.
2013-03-04 20:24:26 -08:00
medmunds
09de5faebe Support embedded images.
Treat image attachments with a Content-ID header as embedded, rather than ordinary attachments. (Rationale is that you must set the content-id to be able to refer to the image within your html, so that's a reasonable indicator to handle it as embedded.)
2013-03-01 13:58:07 -08:00