Release Notes¶
Djrill practices semantic versioning. Among other things, this means that minor updates (1.x to 1.y) should always be backwards-compatible, and breaking changes will always increment the major version number (1.x to 2.0).
Djrill 2.x¶
Version 2.1:
- Handle Mandrill rejection whitelist/blacklist sync event webhooks
- This is likely the final release of Djrill (other than any critical security updates). See GitHub for more on the future of Djrill.
Version 2.0:
- Breaking Changes: please see the upgrade guide.
- Add Django 1.9 support; drop Django 1.3, Python 2.6, and Python 3.2 support
- Add global
MANDRILL_SETTINGSdict that can provide defaults for most Djrill message options - Add
djrill.NotSerializableForMandrillError - Use a single HTTP connection to the Mandrill API to improve performance
when sending multiple messages at once using
send_mass_mail(). (You can also directly manage your own long-lived Djrill connection across multiple sends, by calling open and close on Django’s email backend.) - Add Djrill version to user-agent header when calling Mandrill API
- Improve diagnostics in exceptions from Djrill
- Remove DjrillAdminSite
- Remove unintended date-to-string conversion in JSON encoding
- Remove obsolete DjrillMessage class and DjrillBackendHTTPError
- Refactor Djrill backend and exceptions
Djrill 1.x and Earlier¶
Version 1.4:
- Django 1.8 support
- Support new Django 1.8 EmailMessage reply_to param. (Specifying a Reply-To header still works, with any version of Django, and will override the reply_to param if you use both.)
- Include Mandrill error response in str(MandrillAPIError), to make errors easier to understand.
- More-helpful exception when using a non-JSON-serializable type in merge_vars and other Djrill message attributes
- Deprecation warnings for upcoming 2.0 changes (see above)
Version 1.3:
- Use Mandrill secure https API endpoint (rather than http).
- Support
merge_languageoption (for choosing between Handlebars and Mailchimp templates).
Version 1.2:
- Support Django 1.7; add testing on Python 3.3, 3.4, and PyPy
- Bug fixes
Version 1.1:
- Allow use of Mandrill template default “from” and “subject” fields,
via
use_template_fromanduse_template_subject. - Fix
UnicodeEncodeErrorwith unicode attachments
Version 1.0:
- Global
MANDRILL_SUBACCOUNTsetting
Version 0.9:
- Better handling for “cc” and “bcc” recipients.
- Allow all extra message headers in send. (Mandrill has relaxed previous API restrictions on headers.)
Version 0.8:
- Expose Response from Mandrill on sent messages
Version 0.7:
- Support for Mandrill send options
async,important,ip_pool,return_path_domain,send_at,subaccount, andview_content_link
Version 0.6:
- Support for signed webhooks
Version 0.5:
- Support for incoming mail and other Mandrill webhooks
- Support for Mandrill send options
auto_html,tracking_domainandsigning_domain.
Version 0.4:
- Attachments with a Content-ID are now treated as embedded images
- New Mandrill
inline_cssoption is supported - Remove limitations on attachment types, to track Mandrill change
- Documentation is now available on djrill.readthedocs.org
Version 0.3:
- Attachments are now supported
- Mandrill templates are now supported
- A bcc address is now passed to Mandrill as bcc, rather than being lumped in with the “to” recipients. Multiple bcc recipients will now raise an exception, as Mandrill only allows one.
- Python 3 support (with Django 1.5)
- Exceptions should be more useful:
djrill.NotSupportedByMandrillErrorreplaces generic ValueError;djrill.MandrillAPIErrorreplaces DjrillBackendHTTPError, and is now derived from requests.HTTPError. (New exceptions are backwards compatible with old ones for existing code.)
Version 0.2:
MANDRILL_API_URLis no longer required in settings.py- Earlier versions of Djrill required use of a
DjrillMessageclass to specify Mandrill-specific options. This is no longer needed – Mandrill options can now be set directly on a DjangoEmailMessageobject or any subclass. (Existing code can continue to useDjrillMessage.)