{"id":16421636,"url":"https://github.com/wooyek/django-email-queue","last_synced_at":"2025-03-23T07:32:12.605Z","repository":{"id":57419890,"uuid":"71627883","full_name":"wooyek/django-email-queue","owner":"wooyek","description":"Queening and storing email backed for django","archived":false,"fork":false,"pushed_at":"2023-01-09T14:32:03.000Z","size":347,"stargazers_count":9,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2024-05-02T01:11:10.228Z","etag":null,"topics":["django","email-sender","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wooyek.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-22T08:54:36.000Z","updated_at":"2023-06-19T03:10:17.000Z","dependencies_parsed_at":"2023-02-08T12:15:53.314Z","dependency_job_id":null,"html_url":"https://github.com/wooyek/django-email-queue","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wooyek%2Fdjango-email-queue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wooyek%2Fdjango-email-queue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wooyek%2Fdjango-email-queue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wooyek%2Fdjango-email-queue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wooyek","download_url":"https://codeload.github.com/wooyek/django-email-queue/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245072120,"owners_count":20556352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","email-sender","python"],"created_at":"2024-10-11T07:34:13.370Z","updated_at":"2025-03-23T07:32:12.267Z","avatar_url":"https://github.com/wooyek.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"==================\nDjango email queue\n==================\n\nQueening and storing EMAIL_BACKEND for django.\n\n\n.. image:: https://img.shields.io/pypi/v/django-email-queue.svg\n        :target: https://pypi.python.org/pypi/django-email-queue\n\n.. image:: https://img.shields.io/travis/wooyek/django-email-queue.svg\n        :target: https://travis-ci.org/wooyek/django-email-queue\n\n.. image:: https://readthedocs.org/projects/django-email-queue/badge/?version=latest\n        :target: https://django-email-queue.readthedocs.io/en/latest/?badge=latest\n        :alt: Documentation Status\n.. image:: https://coveralls.io/repos/github/wooyek/django-email-queue/badge.svg?branch=develop\n        :target: https://coveralls.io/github/wooyek/django-email-queue?branch=develop\n        :alt: Coveralls.io coverage\n\n.. image:: https://codecov.io/gh/wooyek/django-email-queue/branch/develop/graph/badge.svg\n        :target: https://codecov.io/gh/wooyek/django-email-queue\n        :alt: CodeCov coverage\n\n.. image:: https://api.codeclimate.com/v1/badges/0e7992f6259bc7fd1a1a/maintainability\n        :target: https://codeclimate.com/github/wooyek/django-email-queue/maintainability\n        :alt: Maintainability\n\n.. image:: https://img.shields.io/github/license/wooyek/django-email-queue.svg\n        :target: https://github.com/wooyek/django-email-queue/blob/develop/LICENSE\n        :alt: License\n\n.. image:: https://img.shields.io/twitter/url/https/github.com/wooyek/django-email-queue.svg?style=social\n        :target: https://twitter.com/intent/tweet?text=Wow:\u0026url=https://github.com/wooyek/django-email-queue\n        :alt: Tweet about this project\n\n.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg\n        :target: https://saythanks.io/to/wooyek\n\n\n* Free software: GNU Affero General Public License v3\n* Documentation: https://django-email-queue.readthedocs.io.\n\nNo change in django send_messages usage to get message storing\n--------------------------------------------------------------\n\nYou don't have to change the way you send messages, this app will plugin into the usual django plumbing.\n\nThis way all the email send though django EMAIL_BACKEND will get stored for auditing.\n\n\nNo overhead infrastructure\n--------------------------\n\nYou don't have to setup overhead infrastructure (e.g. celery, redis and rabbitmq) just to send emails\nasynchronously. You can use a simple worker that will send queued emails.\n\nWhen you get big and having a MQ and all that is a good choice, all you have to to is set\nEMAIL_QUEUE_EMAIL_BACKEND to 'djcelery_email.backends.CeleryEmailBackend'.\nThis way you get message storing for auditing and will use pro setup for asynchronously ran tasks.\n\nQuickstart\n----------\n\n\nInstall Django email queue::\n\n    pip install django-email-queue\n\nThis is a plugin replacement for your current EMAIL_BACKEND. You'll still use it to send actual messages,\nbut before them they'll get stored and queued in models visible from admin panel.\n\n.. code:: python\n\n    EMAIL_BACKEND = 'django_email_queue.backends.EmailBackend'\n    EMAIL_QUEUE_EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'\n\n    INSTALLED_APPS = [\n        ...\n        'django_email_queue.apps.DjangoEmailQueueConfig',\n    ]\n\nNow you have a few options to setup queue processing\n\n1. Run  `django_email_queue.worker` from terminal to continuously send emails:\n\n.. code:: bash\n\n    python -m django_email_queue.worker\n\nSet EMAIL_QUEUE_SLEEP_TIME to number of settings to sleep between runs.\n\n2. Run django command to process queue and exit:\n\n.. code:: bash\n\n    python manage.py send_queued_messages\n\n3. Manually from django admin for :\n\n.. image:: https://django-email-queue.readthedocs.io/en/latest/_static/Admin-bulk-send.png\n    :alt: Deploy Django Opt-out example project to Heroku\n\n\nRunning Tests\n-------------\n\nDoes the code actually work?\n\n::\n\n    $ pipenv install --dev\n    $ pipenv shell\n    $ tox\n\n\nWe recommend using pipenv_ but a legacy approach to creating virtualenv and installing requirements should also work.\nPlease install `requirements/development.txt` to setup virtual env for testing and development.\n\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `wooyek/cookiecutter-django-app`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`wooyek/cookiecutter-django-app`: https://github.com/wooyek/cookiecutter-django-app\n.. _`pipenv`: https://docs.pipenv.org/install\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwooyek%2Fdjango-email-queue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwooyek%2Fdjango-email-queue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwooyek%2Fdjango-email-queue/lists"}