Allow everybody to unsubscribe your messages, user accounts are not required.
MIT License
.. image:: https://img.shields.io/pypi/v/django-opt-out.svg :target: https://pypi.python.org/pypi/django-opt-out
.. image:: https://img.shields.io/travis/wooyek/django-opt-out.svg :target: https://travis-ci.org/wooyek/django-opt-out
.. image:: https://readthedocs.org/projects/django-opt-out/badge/?version=latest :target: https://django-opt-out.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
.. image:: https://coveralls.io/repos/github/wooyek/django-opt-out/badge.svg?branch=develop :target: https://coveralls.io/github/wooyek/django-opt-out?branch=develop :alt: Coveralls.io coverage
.. image:: https://codecov.io/gh/wooyek/django-opt-out/branch/develop/graph/badge.svg :target: https://codecov.io/gh/wooyek/django-opt-out :alt: CodeCov coverage
.. image:: https://api.codeclimate.com/v1/badges/0e7992f6259bc7fd1a1a/maintainability :target: https://codeclimate.com/github/wooyek/django-opt-out/maintainability :alt: Maintainability
.. image:: https://img.shields.io/github/license/wooyek/django-opt-out.svg :target: https://github.com/wooyek/django-opt-out/blob/develop/LICENSE :alt: License
.. image:: https://img.shields.io/twitter/url/https/github.com/wooyek/django-opt-out.svg?style=social :target: https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2Fwooyek%2Fdjango-opt-out :alt: Tweet about this project
.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg :target: https://saythanks.io/to/wooyek
Allow everybody to unsubscribe your messages, user accounts are not required.
To run an example project for this django reusable app, click the button below and start a demo serwer on Heroku
.. image:: https://www.herokucdn.com/deploy/button.png :target: https://heroku.com/deploy :alt: Deploy Django Opt-out example project to Heroku
.. image:: https://django-opt-out.readthedocs.io/en/latest/_static/Django-Opt-out-form.png :target: https://heroku.com/deploy :alt: Deploy Django Opt-out example project to Heroku
Install Django Opt-out application::
pip install django-opt-out
Add it to your INSTALLED_APPS
:
.. code-block:: python
INSTALLED_APPS = (
...
'django_opt_out.apps.DjangoOptOutConfig',
...
)
Add Django Opt-out application's URL patterns:
.. code-block:: python
from django_opt_out import urls as django_opt_out_urls
urlpatterns = [
...
url(r'^', include(django_opt_out_urls)),
...
]
Add unsubscribe links to your emails:
.. code-block:: python
from django_opt_out.utils import get_opt_out_path
email='Django Opt-out <[email protected]>'
unsubscribe = get_opt_out_path(email, 'some', 'tags', 'controlling', 'questionnaire')
# unsubscribe link will not have a domain name and scheme
# you can build prefix from request, but I prefer to set it in settings
from django.conf import settings
unsubscribe = settings.BASE_URL + unsubscribe
body = 'Hello, Regards\n\nUnsubscribe: ' + unsubscribe
from django.core import mail
message = mail.EmailMultiAlternatives(body=body, to=[email])
message.extra_headers['List-Unsubscribe'] = "<{}>".format(unsubscribe)
message.send()
Does the code actually work?
::
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox
This package was created with Cookiecutter_ and the wooyek/cookiecutter-django-app
_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _wooyek/cookiecutter-django-app
: https://github.com/wooyek/cookiecutter-django-app