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
-----------
![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
Release history Release notifications | RSS feed
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)
File details
Details for the file django-email-manager-0.2.1.zip
.
File metadata
- Download URL: django-email-manager-0.2.1.zip
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cfccae81dcf6972bd2eb35d21b36f763b5dab44a0e99ea86ab83aee1045acd1 |
|
MD5 | e6cf42cadcd2b205b1ece99821e1621e |
|
BLAKE2b-256 | 1c825e449c44235ac8e223ef66fd208ab5add8a54d766084972305b5ce4db4ec |