django-sitemessage
Приложение для Django, предлагающее инструменты для доставки сообщений различными способами.
Репозиторий: https://github.com/idlesign/django-sitemessage
Автор:
Игорь Стариков
Приложение позволяет легко и удобно готовить к отправке и отправлять сообщения, используя следующие концепции:
Создаёте в одном из ваших приложений файл
Далее в нужном месте только вызвать функцию, которая назначит сообщение к отправке:
Собственно же отправку назначенных к отправке сообщений можно произвести вызовом функции после назначения, но разумнее сделать это в фоне — для этого нужно периодически (CLI, cron, Celery, uWSGI, проч.) запускать управляющую команду:
Подробную информацию и примеры использования можно почерпнуть из документации (англ).
Смотрите также:
- Посыльные (
Messengers
) — это клиенты, реализующие различные способы доставки (эл. почта; Jabber; Twitter, Telegram, Facebook, ВКонтакте; проч.); - Типы сообщений (
Message Types
) — классы, реализующие логику составления сообщений (обычный текст; HTML; проч.).
Особенности
- Поддержка различных типов посыльных и сообщений. Лёгкость реализации новых;
- Поддержка шаблонов Django для типов сообщений;
- Возможность указания приоритета отправки для типов сообщений;
- Подписки. Возможность подписывать пользователей на разлиные типы сообщений. Шаблон для страниц управления подписками. Инструменты для автоматизации отписки;
- Инструменты для отслеживания факта прочтения сообщений;
- Функции для быстрого назначения к отправке;
- Управляющие команды для: проверки настроек посыльного; отправки сообщений; удаления из БД отправлнных сообщений.
Пример конфигурирования
Создаёте в одном из ваших приложений файл
sitemessages.py
, где конфигурируете посыльных: from sitemessage.toolbox import register_messenger_objects
from sitemessage.messengers.smtp import SMTPMessenger
register_messenger_objects(
# Регистрируем посыльного для эл. почты.
# По умолчанию он будет использовать параметры
# отправки почты из почтовых настроек Django.
SMTPMessenger()
)
Далее в нужном месте только вызвать функцию, которая назначит сообщение к отправке:
from sitemessage.shortcuts import schedule_email
def send_mail_view(request):
# Допустим у нас есть модель получателя сообщения.
some_user = ...
# Отправлять будем от имени request.user.
schedule_email(
'Сообщение из sitemessage.',
[some_user, 'user2@host.com'],
sender=request.user
)
...
Собственно же отправку назначенных к отправке сообщений можно произвести вызовом функции после назначения, но разумнее сделать это в фоне — для этого нужно периодически (CLI, cron, Celery, uWSGI, проч.) запускать управляющую команду:
$ ./manage.py sitemessage_send_scheduled
Подробную информацию и примеры использования можно почерпнуть из документации (англ).
Смотрите также: