Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wooyek/django-email-queue
Queening and storing email backed for django
https://github.com/wooyek/django-email-queue
django email-sender python
Last synced: 2 months ago
JSON representation
Queening and storing email backed for django
- Host: GitHub
- URL: https://github.com/wooyek/django-email-queue
- Owner: wooyek
- License: other
- Created: 2016-10-22T08:54:36.000Z (about 8 years ago)
- Default Branch: develop
- Last Pushed: 2023-01-09T14:32:03.000Z (about 2 years ago)
- Last Synced: 2024-05-02T01:11:10.228Z (8 months ago)
- Topics: django, email-sender, python
- Language: Python
- Homepage:
- Size: 339 KB
- Stars: 9
- Watchers: 3
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- Changelog: HISTORY.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
==================
Django email queue
==================Queening and storing EMAIL_BACKEND for django.
.. image:: https://img.shields.io/pypi/v/django-email-queue.svg
:target: https://pypi.python.org/pypi/django-email-queue.. image:: https://img.shields.io/travis/wooyek/django-email-queue.svg
:target: https://travis-ci.org/wooyek/django-email-queue.. image:: https://readthedocs.org/projects/django-email-queue/badge/?version=latest
:target: https://django-email-queue.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://coveralls.io/repos/github/wooyek/django-email-queue/badge.svg?branch=develop
:target: https://coveralls.io/github/wooyek/django-email-queue?branch=develop
:alt: Coveralls.io coverage.. image:: https://codecov.io/gh/wooyek/django-email-queue/branch/develop/graph/badge.svg
:target: https://codecov.io/gh/wooyek/django-email-queue
:alt: CodeCov coverage.. image:: https://api.codeclimate.com/v1/badges/0e7992f6259bc7fd1a1a/maintainability
:target: https://codeclimate.com/github/wooyek/django-email-queue/maintainability
:alt: Maintainability.. image:: https://img.shields.io/github/license/wooyek/django-email-queue.svg
:target: https://github.com/wooyek/django-email-queue/blob/develop/LICENSE
:alt: License.. image:: https://img.shields.io/twitter/url/https/github.com/wooyek/django-email-queue.svg?style=social
:target: https://twitter.com/intent/tweet?text=Wow:&url=https://github.com/wooyek/django-email-queue
:alt: Tweet about this project.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg
:target: https://saythanks.io/to/wooyek* Free software: GNU Affero General Public License v3
* Documentation: https://django-email-queue.readthedocs.io.No change in django send_messages usage to get message storing
--------------------------------------------------------------You don't have to change the way you send messages, this app will plugin into the usual django plumbing.
This way all the email send though django EMAIL_BACKEND will get stored for auditing.
No overhead infrastructure
--------------------------You don't have to setup overhead infrastructure (e.g. celery, redis and rabbitmq) just to send emails
asynchronously. You can use a simple worker that will send queued emails.When you get big and having a MQ and all that is a good choice, all you have to to is set
EMAIL_QUEUE_EMAIL_BACKEND to 'djcelery_email.backends.CeleryEmailBackend'.
This way you get message storing for auditing and will use pro setup for asynchronously ran tasks.Quickstart
----------Install Django email queue::
pip install django-email-queue
This is a plugin replacement for your current EMAIL_BACKEND. You'll still use it to send actual messages,
but before them they'll get stored and queued in models visible from admin panel... code:: python
EMAIL_BACKEND = 'django_email_queue.backends.EmailBackend'
EMAIL_QUEUE_EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'INSTALLED_APPS = [
...
'django_email_queue.apps.DjangoEmailQueueConfig',
]Now you have a few options to setup queue processing
1. Run `django_email_queue.worker` from terminal to continuously send emails:
.. code:: bash
python -m django_email_queue.worker
Set EMAIL_QUEUE_SLEEP_TIME to number of settings to sleep between runs.
2. Run django command to process queue and exit:
.. code:: bash
python manage.py send_queued_messages
3. Manually from django admin for :
.. image:: https://django-email-queue.readthedocs.io/en/latest/_static/Admin-bulk-send.png
:alt: Deploy Django Opt-out example project to HerokuRunning Tests
-------------Does the code actually work?
::
$ pipenv install --dev
$ pipenv shell
$ toxWe recommend using pipenv_ but a legacy approach to creating virtualenv and installing requirements should also work.
Please install `requirements/development.txt` to setup virtual env for testing and development.Credits
-------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
.. _`pipenv`: https://docs.pipenv.org/install