Info: | A Django app for receival and storage of incoming emails from Mailgun |
---|---|
Author: | Simon Hedberg (http://github.com/hedberg, http://twitter.com/SimonHedberg) |
This README is derived from https://github.com/hmarr/django-ses/blob/master/README.rst
Django-Mailgun-Incoming stores email and attached files received through the Mailgun API. The goal of this package is to be easy to use and easy to customise when needed.
- Django 1.3 or higher (class based views).
Install the package by cloning the repository to your Python path or install using pip:
pip install git+https://github.com/hedberg/django-mailgun-incoming.git#egg=mailgun_incoming
Add
"mailgun_incoming"
to yourINSTALLED_APPS
setting:INSTALLED_APPS = [ # ... "mailgun_incoming", ]
Include urls.
url('^email/', include('mailgun_incoming.urls')),
Point your Mailgun forwarding to the URL used, i.e. /email/incoming/ using the above URL configuration.
Settings
MAILGUN_ACCESS_KEY
(optional) - This is used to verify the signature in posted data.MAILGUN_VERIFY_SIGNATURE
(optional) - This defaults to True if MAILGUN_ACCESS_KEY is specified. Can be set to False for debugging etc.MAILGUN_UPLOAD_TO
(optional) - This can be used to specify where attachments should be saved. This is passed to the file field. Defaults to 'attachments/'
Using the default settings incoming emails are stored in the database and triggers the mailgun_incoming.signals.email_received
signal for further processing.
These models are included in the package.
- EmailBaseModel - an abstract base model
- IncomingEmail - extends the base model adding a user field
- Attachment - a basic model for storing incoming file attachments.
Processing of incoming data are done in the class based view Incoming.
Customisation can be done by
- adding processing logic triggered by the email_recieved signal (e.g. connecting a user object to the email)
- extending the email model
- passing parameters to the Incoming view
- subclassing the Incoming view