Skip to main content

A simple application to store a summary of system e-mails.

Project description

Django Email Manager
-----------

![Continuous Integration Status](https://secure.travis-ci.org/paulocheque/django-email-manager.png?branch=master)

A simple application to manage emails sent by a Django application.

# Installation

```
pip install django-email-manager
```

or

```
# Download zip file
# Extract it
# Execute in the extracted directory: python setup.py install
```

#### Upgrade

```
pip install django-email-manager --upgrade --no-deps
```

# Motivation

* <http://djangopackages.com/grids/g/email>

* Problem: Bad control of what and how many e-mails have being sent to users.
* Solution: A simple table that log a summary of each e-mail had been sent.
A daily routine avoid this table grows uncontrolled and use the data to generate statistics.

* Problem: Important e-mails are deleted from the database when a user change his e-mail.
* Solution: A simple table that store all e-mails independently.

* Usually, good systems do not send attachments by e-mail because this a open door to attacks.

# Configuration

* settings.py:


```python
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.admin',
'email_manager',
)

# This attribute activates a listener to store all e-mails independently of auth_user database.
EMAIL_DATABASE_ACTIVATED = True

# If you want to use celery for sending e-mails, you can customize the task name, example:
EMAIL_MANAGER_USING_CELERY = True # default = False
EMAIL_MANAGER_TASK = 'email-manager-task' # default = None
```

* urls.py


```python
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'^email-manager/', include('email_manager.urls', namespace='email_manager', app_name='email_manager')),
)
```

* Templates:


```python
{% url email_manager:define_email_preferences user.id %}
{% if user.is_superuser %}
{% url email_manager:send_email_to_groups %}
{% url email_manager:send_email_to_users %}
{% url email_manager:update_statistics %}
{% endif %}
```

# Usage

* Manual Test:


```
/email-manager/send-email-to-groups/
/email-manager/send-email-to-users/
/email-manager/update-statistics/
/email-manager/define_email_preferences/USER_ID
```

* Send e-mails directly in source code:


```python
from email_manager.feature_send_email import EmailSender
EmailSender().send_email(emails, subject, text_content, html_content, main_content)
EmailSender().send_email_to_users(users, additional_emails, subject, content, html_content, email_type)
EmailSender().send_email_to_groups(groups, additional_emails, subject, content, html_content, email_type)
```

* Manual updating statistics:


```
python manage.py update_email_statistics
```

# Change Log

## Version 0.2.1
* 2012/04/08 (yyyy/mm/dd)
* <http://pypi.python.org/pypi/django-email-manager/0.2.1>
* Fixing configuration of package

## Version 0.2.0
* 2012/02/11 (yyyy/mm/dd)
* <http://pypi.python.org/pypi/django-email-manager/0.2.0>
* Now emails can have types and users can define which types of e-mails they want to receive.

## Version 0.1.0
* 2012/02/05 (yyyy/mm/dd)
* <http://pypi.python.org/pypi/django-email-manager/0.1.0>
* Initial version


# TODO:

* Auto update statistics
* Simple graphs and reports

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-email-manager-0.2.1.zip (18.7 kB view details)

Uploaded Source

File details

Details for the file django-email-manager-0.2.1.zip.

File metadata

File hashes

Hashes for django-email-manager-0.2.1.zip
Algorithm Hash digest
SHA256 9cfccae81dcf6972bd2eb35d21b36f763b5dab44a0e99ea86ab83aee1045acd1
MD5 e6cf42cadcd2b205b1ece99821e1621e
BLAKE2b-256 1c825e449c44235ac8e223ef66fd208ab5add8a54d766084972305b5ce4db4ec

See more details on using hashes here.

Supported by

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