Приложение для Django, предлагающее инструменты для доставки сообщений различными способами.
Приложение позволяет легко и удобно готовить к отправке и отправлять сообщения, используя следующие концепции:

  • Посыльные (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

Подробную информацию и примеры использования можно почерпнуть из документации (англ).

Смотрите также:

Категории

Окружение
Проект

На заметку
В разделе «События» можно узнать о надвигающихся событиях мира Python, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.