%global _empty_manifest_terminate_build 0 Name: python-django-post-office Version: 3.6.3 Release: 1 Summary: A Django app to monitor and send mail asynchronously, complete with template support. License: MIT URL: https://github.com/ui/django-post_office Source0: https://mirrors.nju.edu.cn/pypi/web/packages/79/c2/c4cd1058ff4f524ecbfea4f6f35b7708ec6c9ec545c7073f20c4afb7ba2e/django-post_office-3.6.3.tar.gz BuildArch: noarch Requires: python3-bleach[css] Requires: python3-django Requires: python3-jsonfield Requires: python3-pytz Requires: python3-bleach Requires: python3-tox %description ### Caching if Django's caching mechanism is configured, `post_office` will cache `EmailTemplate` instances . If for some reason you want to disable caching, set `POST_OFFICE_CACHE` to `False` in `settings.py`: ```python ## All cache key will be prefixed by post_office:template: ## To turn OFF caching, you need to explicitly set POST_OFFICE_CACHE to False in settings POST_OFFICE_CACHE = False ## Optional: to use a non default cache backend, add a "post_office" entry in CACHES CACHES = { 'post_office': { 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '127.0.0.1:11211', } } ``` ### send_many() `send_many()` is much more performant (generates less database queries) when sending a large number of emails. `send_many()` is almost identical to `mail.send()`, with the exception that it accepts a list of keyword arguments that you'd usually pass into `mail.send()`: ```python from post_office import mail first_email = { 'sender': 'from@example.com', 'recipients': ['alice@example.com'], 'subject': 'Hi!', 'message': 'Hi Alice!' } second_email = { 'sender': 'from@example.com', 'recipients': ['bob@example.com'], 'subject': 'Hi!', 'message': 'Hi Bob!' } kwargs_list = [first_email, second_email] mail.send_many(kwargs_list) ``` Attachments are not supported with `mail.send_many()`. ## Running Tests To run the test suite: ```python `which django-admin.py` test post_office --settings=post_office.test_settings --pythonpath=. ``` You can run the full test suite for all supported versions of Django and Python with: ```python tox ``` or: ```python python setup.py test ``` ## Integration with Celery If your Django project runs in a Celery enabled configuration, you can use its worker to send out queued emails. Compared to the solution with cron (see above), or the solution with uWSGI timers (see below) this setup has the big advantage that queued emails are send *immediately* after they have been added to the mail queue. The delivery is still performed in a separate and asynchronous task, which prevents sending emails during the request/response-cycle. If you [configured Celery](https://docs.celeryproject.org/en/latest/userguide/application.html) in your project and started the [Celery worker](https://docs.celeryproject.org/en/latest/userguide/workers.html), you should see something such as: %package -n python3-django-post-office Summary: A Django app to monitor and send mail asynchronously, complete with template support. Provides: python-django-post-office BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-django-post-office ### Caching if Django's caching mechanism is configured, `post_office` will cache `EmailTemplate` instances . If for some reason you want to disable caching, set `POST_OFFICE_CACHE` to `False` in `settings.py`: ```python ## All cache key will be prefixed by post_office:template: ## To turn OFF caching, you need to explicitly set POST_OFFICE_CACHE to False in settings POST_OFFICE_CACHE = False ## Optional: to use a non default cache backend, add a "post_office" entry in CACHES CACHES = { 'post_office': { 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '127.0.0.1:11211', } } ``` ### send_many() `send_many()` is much more performant (generates less database queries) when sending a large number of emails. `send_many()` is almost identical to `mail.send()`, with the exception that it accepts a list of keyword arguments that you'd usually pass into `mail.send()`: ```python from post_office import mail first_email = { 'sender': 'from@example.com', 'recipients': ['alice@example.com'], 'subject': 'Hi!', 'message': 'Hi Alice!' } second_email = { 'sender': 'from@example.com', 'recipients': ['bob@example.com'], 'subject': 'Hi!', 'message': 'Hi Bob!' } kwargs_list = [first_email, second_email] mail.send_many(kwargs_list) ``` Attachments are not supported with `mail.send_many()`. ## Running Tests To run the test suite: ```python `which django-admin.py` test post_office --settings=post_office.test_settings --pythonpath=. ``` You can run the full test suite for all supported versions of Django and Python with: ```python tox ``` or: ```python python setup.py test ``` ## Integration with Celery If your Django project runs in a Celery enabled configuration, you can use its worker to send out queued emails. Compared to the solution with cron (see above), or the solution with uWSGI timers (see below) this setup has the big advantage that queued emails are send *immediately* after they have been added to the mail queue. The delivery is still performed in a separate and asynchronous task, which prevents sending emails during the request/response-cycle. If you [configured Celery](https://docs.celeryproject.org/en/latest/userguide/application.html) in your project and started the [Celery worker](https://docs.celeryproject.org/en/latest/userguide/workers.html), you should see something such as: %package help Summary: Development documents and examples for django-post-office Provides: python3-django-post-office-doc %description help ### Caching if Django's caching mechanism is configured, `post_office` will cache `EmailTemplate` instances . If for some reason you want to disable caching, set `POST_OFFICE_CACHE` to `False` in `settings.py`: ```python ## All cache key will be prefixed by post_office:template: ## To turn OFF caching, you need to explicitly set POST_OFFICE_CACHE to False in settings POST_OFFICE_CACHE = False ## Optional: to use a non default cache backend, add a "post_office" entry in CACHES CACHES = { 'post_office': { 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 'LOCATION': '127.0.0.1:11211', } } ``` ### send_many() `send_many()` is much more performant (generates less database queries) when sending a large number of emails. `send_many()` is almost identical to `mail.send()`, with the exception that it accepts a list of keyword arguments that you'd usually pass into `mail.send()`: ```python from post_office import mail first_email = { 'sender': 'from@example.com', 'recipients': ['alice@example.com'], 'subject': 'Hi!', 'message': 'Hi Alice!' } second_email = { 'sender': 'from@example.com', 'recipients': ['bob@example.com'], 'subject': 'Hi!', 'message': 'Hi Bob!' } kwargs_list = [first_email, second_email] mail.send_many(kwargs_list) ``` Attachments are not supported with `mail.send_many()`. ## Running Tests To run the test suite: ```python `which django-admin.py` test post_office --settings=post_office.test_settings --pythonpath=. ``` You can run the full test suite for all supported versions of Django and Python with: ```python tox ``` or: ```python python setup.py test ``` ## Integration with Celery If your Django project runs in a Celery enabled configuration, you can use its worker to send out queued emails. Compared to the solution with cron (see above), or the solution with uWSGI timers (see below) this setup has the big advantage that queued emails are send *immediately* after they have been added to the mail queue. The delivery is still performed in a separate and asynchronous task, which prevents sending emails during the request/response-cycle. If you [configured Celery](https://docs.celeryproject.org/en/latest/userguide/application.html) in your project and started the [Celery worker](https://docs.celeryproject.org/en/latest/userguide/workers.html), you should see something such as: %prep %autosetup -n django-post-office-3.6.3 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-django-post-office -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 07 2023 Python_Bot - 3.6.3-1 - Package Spec generated