Skip to content
A Django application that manages multiple email addresses for a given user (for live demo, visit the following link and create an account)
Python Shell
Find file
Latest commit 7a64543 @un33k Merge pull request #1 from pmaccamp/master
Update hashlib/urls to work with django 1.6



Django Email Manager (emailmgr) is an application that helps with post-registration email management".
``You can associate multiple email addresses to a single Django User.``

This application comes into the picture only after a user has been created, activated
and logged in.

If your requirements is for email management prior to user registration please take a 
look at ``django-registration`` or ``django-email-confirmation``.

This application was inspired by's email management system as well as 
the mentioned applications.

Current Features:
    * - Django user has been created 
        * - Either via proper registration and activation or via the admin interface or scripts
    * - This application first looks for its templates in: EMAIL_MGR_TEMPLATE_PATH, then
        it looks for <template_dir>/emailmgr/
        * - This way, projects can place the required templates at a location of their choice
            relative to the <tempalate_dir> of course
    * - Three templates are found in the template directory as stated above
        * - email subject template - emailmgr_activation_subject.txt
            * - extra context: current_site
        * - email message body template - emailmgr_activation_message.txt
            * - extra context: current_site, activate_url & user
        * - email list & manipulation template - emailmgr_email_list.html
            * - extra context: emails_list and add_email_form
                * - email_list includes all emails for this users
                    * - sorted by: 
                        1. primary - set directly via django or by emailmgr
                        2. activated - confirmed emails and can be set primary
                        3. not activated but activation email sent
                        5. not activated and activation email not sent
                * - add_email_form is a form for adding a new email address to a user

1. This app latches on the ``post_save`` signals for (user) and execute the following:
    A. Creates an email address object with the following attributes
        * - email = (if not blank)
        * - is_active = True
        * - is_primary = True
        * - is_activation_sent = Don't care
        * - identifier = a random string (used for activation)
        * - Note: user login is not required
        * - Note: email is only created if user has a valid email address
        * - Note: this email is automatically considered as primary and activation is skipped

2. Latch on the ``post_delete`` signals on (user) and execute the following:
    A. Deletes all email addresses associated with the (just) deleted user
3. Provides URL to:
    A. Adds an email address to the logged in user's account:
        * -, 
        * - Email address is created and associated with the logged in user
        * - Email address remains inactive and cannot be made primary
        * - User is redirected to
        * - ``email_list`` and ``email_form`` are passed into the template
    B. Deletes an email address from a user account
        * -<identifier>/, 
        * - Existing email address with the above identifier is deleted
        * - Primary email address cannot be delete
        * - Once the email is deleted, user is redirected to
    C. Sends activation link for a newly added email address (sendto = user's primary email address)
        * -<identifier>/, 
        * - An activation email is sent to the logged in user's primary address
        * - Note: all emails remain inactive unless activated
        * - Once the email is sent, user is redirected to

    D. Activates an email address when user clicks on an activation link
        * -<identifier>/,
        * - Note: link was emailed to user's primary email address
        * - Matched email will be activated (then eligible to be promoted to primary)
        * - Once the email is activated, user is redirected to

    E. Makes an activated email address the primary email
        * -<identifier>/,
        * - Only activated email addresses can be promoted to be the primary email address
        * - is set to the newly promoted primary email address
        * - Note: Only one email address can be set to primary
        * - Once the email is made primary, user is redirected to

4. More to come ... patches & enhancements are welcomed (


A. Install django-emailmgr:
    * _ Make sure you have python 2.6+ and can install from pypi
        1. easy_install django-emailmgr
        2. pip install django-emailmgr
        3. git clone
            a. cd django-emailmgr
            b. run python
        4. wget
            a. unzip the downloaded file
            b. cd into django-emailmgr directory
            c. run python

    * _ Stick ``"emailmgr"`` in ``INSTALLED_APPS``, right after all other Django specific Apps
    * _ Follow the instruction in the ``Current Features`` at the top of this file for usage.
    * _ Use the templates in test directory as an example to create your own templates
    * _ Include this application's urls or create your own urls for this application
    * _ Run syncdb and enjoy

clean up README
add more goodies

Something went wrong with that request. Please try again.