- Allow
tasks.py
to be imported when Celery is not installed. This allows auto-discovery by other task systems such as Huey to succeed.
- Signals that emails have been put into the queue.
- Celery integration for immediate asynchronous delivery.
- Changed version handling.
- Drop support for Django < 2.2.
- Revert
jsonfield2
back tojsonfield
to make upgrade from < 3.3.0 smoother. Thanks @rpkilby!
- Support for Django 3.0. Thanks @Mogost!
- Drop support for Django < 1.11 and Python < 3.5. Thanks @Mogost!
- Replace unsupported dependency
jsonfield
with supported forkjsonfield2
. Thanks @Mogost! - Added
OVERRIDE_RECIPIENTS
for testing purposes. Thanks @Houtmann! - Improved admin interface. Thanks @ilikerobots and @cwuebbels!
- Fix #264: Replace unicode elipsis against 3 dots.
- Drop support for Python-3.3.
- Drop support for Django-1.8 and 1.9.
- Add functionality to attach images as inlines to email body.
- Add special template engine to render HTML emails with inlined images.
- Update German translation strings.
- Improvements to attachments are handled. Thanks @SeiryuZ!
- Added
--delete-attachments
flag tocleanup_mail
management command. Thanks @Seiryuz! - I18n improvements. Thanks @vsevolod-skripnik and @delneg!
- Django admin improvements. Thanks @kakulukia!
- Added compatibility with Django 2.0. Thanks @PreActionTech and @PetrDlouhy!
- Added natural key support to
EmailTemplate
model. Thanks @maximlomakin!
- Fixed memory leak when multiprocessing is used.
- Fixed a possible error when adding a new email from Django admin. Thanks @ivlevdenis!
_send_bulk
now properly catches exceptions when preparing email messages.
- Fixed an infinite loop bug in
send_queued_mail
management command.
_send_bulk
now allows each process to use multiple threads to send emails.- Added support for mimetypes in email attachments. Thanks @clickonchris!
- An
EmailTemplate
can now be used as defaults multiple times in one language. Thanks @sac7e! send_queued_mail
management command will now check whether there are more queued emails to be sent before exiting.- Drop support for Django < 1.8. Thanks @fendyh!
- Django 1.10 compatibility fixes. Thanks @hockeybuggy!
- Fixed an issue where Django would sometimes create migration files for post-office. Thanks @fizista!
- Fixed an issue with sending email to recipients with display name. Thanks @yprez!
- Fixes Django 1.10 deprecation warnings and other minor improvements. Thanks @yprez!
- Email.subject can now accept up to 989 characters. This should also fix minor migration issues. Thanks @yprez!
- Fixes more Django 1.8 deprecation warnings.
Email.dispatch()
now closes backend connection by default. Thanks @zwack- Compatibility fixes for Django 1.9. Thanks @yprez!
Email.dispatch()
now closes backend connection by default. Thanks @zwack- Compatibility fixes for Django 1.9. Thanks @yprez!
- Fixes migration related packaging issues.
- Fixes deprecation warning in Django 1.8.
- Added multi backend support. Now you can use multiple email backends with
post-office
! - Added multi language support. Thanks @jrief!
- Adds Django 1.8 compatibility.
- Fixes a migration error. Thanks @garry-cairns!
- Support for Django 1.7 migrations. If you're still on Django < 1.7,
South migration files are stored in
south_migrations
directory.
- IMPORTANT: in older versions, passing multiple
recipients
intomail.send()
will create multiple emails, each addressed to one recipient. Starting from1.0.0
, only one email with multiple recipients will be created. - Added
LOG_LEVEL
setting. mail.send()
now supportscc
andbcc
. Thanks Ștefan Daniel Mihăilă (@stefan-mihaila)!- Improvements to
admin
interface; you can now easily requeue multiple emails. Log
model now stores the type of exception caught during sending.send_templated_mail
command is now deprecated.- Added
EMAIL_BACKEND
setting to the new dictionary-styled settings.
send_queued_mail
now accepts an extra--log-level
argument.mail.send()
now accepts an extralog_level
argument.- Drop unused/low cardinality indexes to free up RAM on large tables.
send_queued_mail
now accepts--lockfile
argument.- Lockfile implementation has been modified to use symlink, which is an atomic operation across platforms.
- Added
CONTEXT_FIELD_CLASS
setting to allow other kinds of context field serializers.
- Fixed a bug that causes context to be saved when
render_on_delivery
is False
- Added a new setting
DEFAULT_PRIORITY
to set the default priority for emails. Thanks Maik Hoepfel (@maikhoepfel)! mail.send()
gains arender_on_delivery
argument that may potentially result in significant storage space savings.- Uses a new locking mechanism that can detect zombie PID files.
- Made a few tweaks that makes
post_office
much more efficient on systems with large number of rows (millions).
- Python 3 compatibility fix.
- Added support for sending attachments. Thanks @yprez!
- Added
description
field toEmailTemplate
model to store human readable description of templates. Thanks Michael P. Jung (@bikeshedder)! - Changed
django-jsonfield
dependency tojsonfield
for Python 3 support reasons. - Minor bug fixes.
- Support for Python 3!
- Added mail.send_many() that's much more performant when sending a large number emails
- Added logging
- Added BATCH_SIZE configuration option
- Fixes various multiprocessing bugs
- Email sending can now be parallelized using multiple processes (multiprocessing)
- Email templates are now validated before save
- Fixed a bug where custom headers aren't properly sent
- Added support for sending emails with custom headers (you'll need to run South when upgrading from earlier versions)
- Added support for scheduled email sending
- Backend now properly persist emails with HTML alternatives
- IMPORTANT:
mail.send
now expects recipient email addresses as the first argument. This change is to allow optionalsender
parameter which defaults tosettings.DEFAULT_FROM_EMAIL
- Fixed a bug where all emails sent from
mail.send
have medium priority
- IMPORTANT: added South migration. If you use South and had post-office installed before 0.3.0, you may need to manually resolve migration conflicts
- Allow unicode messages to be displayed in
/admin
- Introduced a new
mail.send
function that provides a nicer API to send emails created
fields now useauto_now_add
last_updated
fields now useauto_now
- Fixed typo in
admin.py
- Allows sending emails via database backed templates
- Errors when opening connection in
Email.dispatch
method are now logged