django-contactme provides a simple contact form that only hits the database after the user confirm her email address. Emails are threaded to avoid response blocking.

Tested under:

  • Python 3.2 and Django 1.5.1
  • Python 2.7 and Django 1.5.1
  • Python 2.7 and Django 1.4.5

Table of contents:

Quick start

  1. Add django_contactme to INSTALLED_APPS.
  2. Add url(r'^contact/', include('django_contactme.urls')) to your root URLconf.
  3. syncdb, runserver, and
  4. Hit http://localhost:8000/contact/ in your browser!

Workflow in short

The user...

  1. Clicks on the contact me/us link of your site.
  2. She fills in the contact form data with her name, email address and message, and clicks on preview.
  3. She finally clicks on post and submit the form.
  4. Then django-contactme:
  1. Creates a token with the contact form data.
  2. Sends an email to her with a confirmation URL containing the token.
  3. And shows a template telling her she must click on the link to confirm the message.
  1. She receives the email, she opens it, and she clicks on the confirmation link.
  2. Then django-contactme:
  1. Check that the token is correct and creates a ContactMsg model instance.
  2. Sends an email to CONTACTME_NOTIFY_TO addresses notifying that a new contact message has arrived.
  3. And shows a template being grateful to her for the message.

Read a longer workflow description in the Workflow section of the Tutorial.