Newsletter application for the Django web framework.
What is it?
Django app for managing multiple mass-mailing lists with both plaintext as
well as HTML templates with rich text widget integration, images and a
smart queueing system all right from the admin interface.
We are currently using this package in several large to medium scale
production environments, but it should be considered a permanent work in
Most if not all strings are available in Dutch, German and English.
Contributions to translations are welcome through Transifex.
Currently, django-newsletter is being tested to run on Python 2.5-2.7 and the
latest Django 1.3 and 1.4 releases. Django 1.5 support is underway.
(In either case it is recommended that you use
VirtualEnv in order to
keep your Python environment somewhat clean.)
Add newsletter and to INSTALLED_APPS in settings.py and make sure that
your favourite rich text widget (optional), some Django contrib dependencies,
(the latter is used for the submission jobs) are there as well:
Since 5f79f40, the app makes use of South for
schema migrations. As of this version, using South with django-newsletter
is the official recommendation and installing it is easy.
When upgrading from a pre-South version of newsletter to a current
release (in a project for which South has been enabled), you might have to
fake the initial migration as the DB tables already exist. This can be done
by running the following command:
./manage.py migrate newsletter 0001 --fake
Start the development server: ./manage.py runserver
Navigate to /admin/ and: behold!
Put a submission in the queue.
Submit your message with ./manage.py runjob submit
For a proper understanding, please take a look at the model graph.
Fairly extensive tests are available for internal frameworks, web
(un)subscription and mail sending. Sending a newsletter to large groups of recipients
(+10k) has been confirmed to work in multiple production environments. Tests
for pull req's and the master branch are automatically run through
If you find any bugs or have feature request for django-newsletter, don't hesitate to
open up an issue on GitHub
(but please make sure your issue hasn't been noticed before, finding duplicates is a
waste of time). When modifying or adding features to django-newsletter in a fork, be
sure to let me know what you're building and how you're building it. That way we can
coordinate whether, when and how it will end up in the main fork and (eventually) an
In general: thanks for the support, feedback, patches and code that's been flowing in
over the years! Django has a truly great community. <3
This application is released
under the GNU Affero General Public License version 3.