Introduction — django-contactme-form 1.2 documentation

# Introduction

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:

- Demo project
  - Demo quick setup
  - Email settings
  - Register a signal receiver
- Tutorial
  - Installation
  - Configuration
  - Workflow
  - Signals and receivers
- Signals
  - Confirmation will be requested
  - Confirmation has been requested
  - Confirmation has been received
- Templatetags
  - `render_contact_form`
- Settings
  - `CONTACTME_MSG_MAX_LEN`
  - `CONTACTME_SALT`
  - `CONTACTME_NOTIFY_TO`
- Templates

# 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.