Skip to content

A simple wrapper around django-ses to receive and persist sns event data.

License

Notifications You must be signed in to change notification settings

ferdinand-hoffmann/django-ses-sns-tracker

 
 

Repository files navigation

django-ses-sns-tracker

A simple wrapper around django-ses to receive and persist sns event data.

Records mail delivery in the SESMailDelivery model and updates the state if a matching SNS notification is received.

Requirements

Quick start

  1. Add ses_sns_tracker to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...
        'ses_sns_tracker',
    ]
    
  2. Run python manage.py migrate to create the models.

  3. Setup django-ses

  4. (Optional) Use ses_sns_tracker.backends.SESSNSTrackerBackend as your default email backend:

    EMAIL_BACKEND = 'ses_sns_tracker.backends.SESSNSTrackerBackend'
    

    This way all emails will be send via the Amazon SES API.

  5. (Optional) Send an email via the SESMailDelivery manager (doesn't require SESSNSTrackerBackend as the default mail backend):

    from django.core.mail import EmailMessage
    from ses_sns_tracker.models import SESMailDelivery
    
    message = EmailMessage(
        subject='email subject',
        body='email body',
        from_email='[email protected]',
        to=['[email protected]'],
    )
    SESMailDelivery.objects.create_message(message, fail_silently=False, fake_delivery=False)

Settings

  • SES_SNS_TRACKER_DEBUG_BACKEND = 'django.core.mail.backends.console.EmailBackend'

    Set mail backend to use for the actual mail delivery in DEBUG mode (SESMailDelivery objects will still be created). Default: None

  • SES_SNS_TRACKER_USE_CRYPTOGRAPHY = True

    Use crypthography instead of M2Crypto to verify the signature of messages received from SNS. Default: True

Development setup

  1. Upgrade packaging tools:

    pip install --upgrade pip setuptools wheel
  2. Install packages from requirements-dev.txt:

    pip install -r requirements-dev.txt
  3. (Optional) Override settings in example_proj/settings_local.py & tests/settings_local.py as required.

About

A simple wrapper around django-ses to receive and persist sns event data.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%