Welcome to django-postman's documentation!
This is an application for Django-powered websites.
Available translations are:
|Arabic - ar [..51%...]||Italian - it [.....94%] (Grazie a Yohan Boniface)|
|Chinese - zh_CN [.....100%] (到Gene Woo感谢)||Latvian - lv [.....100%] (Paldies Māris Nartišs)|
|Chinese - zh_TW [.....100%] (到Leonard Huang感谢)||Persian - fa_IR [.....100%] (زبان فارسی توسط علیرضا ساوند)|
|Czech - cs [.25%....]||Polish - pl [.....100%] (Dzięki Maciej Marczewski)|
|Danish - da [.32%....]||Portuguese - pt_BR [.....100%] (Obrigado Fábio C. Barrionuevo da Luz)|
|Dutch - nl [...60%..]||Russian - ru [.....100%] (Cпасибо Vasiliy Korchagin)|
|Esperanto - eo [.....100%] (Dank’al Stela)||Slovenian - sl_SI [..41%...] (Hvala Miha Frangež)|
|French - fr [.....100%] (Langue de l'auteur)||Spanish - es [.....100%] (Gracias a Erik Rivera)|
|German - de [.....100%] (Dankeschön an 'lonelycowboy')||Thai - th_TH [.....100%] (ขอบคุณคุณ Sippakorn Khaimook)|
|Greek - el [.....100%] (Σας ευχαριστώ Markos Gogoulos)||Turkish - tr [.....100%] (T. Gündogan & A.E. Aladağ sayesinde)|
|Hungarian - hu [.....100%] (Hála Istvan Farkas)|
Your contribution to the translations is welcomed at: https://www.transifex.com/psam/django-postman/
Basically, the purpose is to allow authenticated users of a site to exchange private messages within the site. In this documentation, the word user is to be understood as an instance of a User, in the django.contrib.auth context.
So it is mainly for a User-to-User exchange. But it may be beneficial for a subscriber to receive inquiries from any visitor, ie even if non authenticated. For instance, a subscriber as a service provider wants an ask-me-details form on a presentation page to facilitate possible business contacts. In this case, the visitor is presented a compose message form with an additional field to give an email address for the reply. The email is obfuscated to the recipient.
What is a message ? Roughly a piece of text, about a subject, sent by a sender to a recipient. Each user has access to a collection of messages, stored in folders:
- Inbox for incoming messages
- Sent for sent messages
- Archives for archived messages
- Trash for messages marked as deleted
In folders, messages can be presented in two modes:
- by conversation, for a compact view: the original message and its replies are grouped in a set to constitute one sole entry. The lastest message (based on the time) is the representative of the set.
- by message, for an expanded view: each message is considered by itself.
Here is a summary of features:
- A non-User (email is undisclosed) can write to a User and get a reply (can be disabled by configuration)
- Exchanges can be moderated (with auto-accept and auto-reject plug-ins)
- Optional recipient filter plug-ins
- Optional exchange filtering plug-ins (blacklists)
- Multi-recipient writing is possible (can be disabled by configuration) with min/max constraints
- Messages are managed by conversations
- Messages in folders are sortable by sender|recipient|subject|date
- 'Archives' folder in addition to classic Inbox, Sent and Trash folders
- A Quick-Reply form to only ask for a response text
- A cleanup management command to clear the old deleted messages
It has support for optional additional applications:
- Autocomplete recipient field (default is 'django-ajax-selects'), with multiple recipient management
- New message notification (default is 'django-notification')
- Asynchronous mailer (default is 'django-mailer')
As an option, messages may need to be validated by a moderator before to be visible to the recipient. Possible usages are:
- to control there is no unwanted words in the text fields.
- to make sure that no direct contact informations are exchanged when the site is an intermediary and delivers services based on subscription fees.
Messages are first created in a pending state. A moderator is in charge to change them to a rejected or accepted state. This operation can be done in two ways:
- By a person, through the Admin site. A specially simplified change view is provided, with one-click buttons to accept or reject the message.
- Automatically, through one or more auto-moderator functions.
As options, custom filters can disallow messages, in two ways:
- user filter: a user is not in a state to act as a recipient
- exchange filter: criteria for a message between a specific sender and a specific recipient are not fulfilled