Skip to main content

Reusable application for Django introducing a message delivery framework

Project description

https://github.com/idlesign/django-sitemessage

https://img.shields.io/pypi/v/django-sitemessage.svg https://img.shields.io/pypi/l/django-sitemessage.svg https://img.shields.io/coveralls/idlesign/django-sitemessage/master.svg

Description

Reusable application for Django introducing a message delivery framework.

Features:

  • Message Types - message classes exposing message composition logic (plain text, html, etc.).

  • Messengers - clients for various protocols (smtp, jabber, twitter, telegram, facebook, vkontakte, etc.);

  • Support for user defined message types.

  • Support for user defined messenger types.

  • Message prioritization.

  • Message subscription/unsubscription system.

  • Message grouping to prevent flooding.

  • Message ‘read’ indication.

  • Means for background message delivery and cleanup.

  • Means to debug integration: test requisites, delivery log.

  • Django Admin integration.

  1. Configure messengers for your project (create sitemessages.py in one of your apps):

from sitemessage.toolbox import register_messenger_objects, register_message_types
from sitemessage.messengers.smtp import SMTPMessenger

register_messenger_objects(
    # Here we register one messenger to deliver emails.
    # By default it uses mailing related settings from Django settings file.
    SMTPMessenger()
)
  1. Schedule messages for delivery when and where needed (e.g. in a view):

from sitemessage.shortcuts import schedule_email

def send_mail_view(request):
    ...

    # Suppose `user_model` is a recipient Django User model instance.
    user1_model = ...

    # We pass `request.user` into `sender` to keep track of senders.
    schedule_email('Message from sitemessage.', [user1_model, 'user2@host.com'], sender=request.user)

    ...
  1. Periodically run Django management command from wherever you like (cli, cron, Celery, uWSGI, etc.):

    ./manage.py sitemessage_send_scheduled

And that’s only the tip of sitemessage iceberg, read the docs %)

Documentation

http://django-sitemessage.readthedocs.org/

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page