[16] | 1 | Overview of mailjam's architecture
|
---|
[13] | 2 | ==================================
|
---|
| 3 |
|
---|
| 4 | .. contents::
|
---|
| 5 |
|
---|
| 6 | Introduction
|
---|
| 7 | ------------
|
---|
| 8 |
|
---|
[16] | 9 | Mailjam has been designed following a **multi-component structure**. There is
|
---|
[13] | 10 | **a daemon** that manage the mailing lists and members information in a storage
|
---|
| 11 | backend and there are **different kinds of clients** (currently, three of them)
|
---|
| 12 | that **interact with the daemon using a XMLRPC link**.
|
---|
| 13 |
|
---|
| 14 | This is the scheme of the architecture:
|
---|
| 15 |
|
---|
[16] | 16 | .. image:: /mailjam_architecture.png
|
---|
| 17 | :alt: Scheme of the architecture behind Mailjam
|
---|
[13] | 18 | :class: open_fancybox
|
---|
| 19 |
|
---|
[27] | 20 | This architecture works for small setups (everything running on a single server)
|
---|
| 21 | but it works for bigger/larger installations with up to N mail servers, running
|
---|
| 22 | each server its own :ref:`overview_mailjam_mta_client` (or multiple instances
|
---|
| 23 | of it) to connect to N :ref:`overview_mailjam_daemon` servers (managed locally
|
---|
| 24 | or remotely using up to N :ref:`overview_mailjam_cli_client` or
|
---|
| 25 | :ref:`overview_mailjam_web_client` instances).
|
---|
| 26 |
|
---|
| 27 | .. seealso::
|
---|
| 28 |
|
---|
| 29 | :doc:`The examples documentation <examples>` contains some useful examples
|
---|
| 30 | about different kinds of setups.
|
---|
[13] | 31 |
|
---|
[16] | 32 | .. _overview_mailjam_daemon:
|
---|
[13] | 33 |
|
---|
[16] | 34 | Mailjam daemon
|
---|
[13] | 35 | --------------
|
---|
| 36 |
|
---|
| 37 | The daemon will perform all the operations regarding the management of the
|
---|
| 38 | mailing lists and members. The daemon will save information of a given
|
---|
| 39 | mailing list to the storage backend, and will read information of already
|
---|
| 40 | saved lists from there too.
|
---|
| 41 |
|
---|
| 42 | It listens for incoming XMLRPC requests on a given tcp port, allowing clients
|
---|
| 43 | to add/update/delete data from the backend.
|
---|
| 44 |
|
---|
[16] | 45 | .. _overview_mailjam_mta_client:
|
---|
[13] | 46 |
|
---|
| 47 | MTA client
|
---|
| 48 | ----------
|
---|
| 49 |
|
---|
| 50 | This client is attached to a given MTA, and is called but the MTA itself when
|
---|
| 51 | emails for a mailing lists are received. The client performs some checks on the
|
---|
| 52 | backend to tell the MTA what it has to do with the incoming emails.
|
---|
| 53 |
|
---|
[16] | 54 | .. _overview_mailjam_cli_client:
|
---|
[13] | 55 |
|
---|
| 56 | CLI client
|
---|
| 57 | ----------
|
---|
| 58 |
|
---|
| 59 | This is a shell-like interface that can be used to add mailing lists to a given
|
---|
[16] | 60 | Mailjam server, edit such mailing lists information, add members, etc.
|
---|
[13] | 61 |
|
---|
[16] | 62 | .. _overview_mailjam_web_client:
|
---|
[13] | 63 |
|
---|
| 64 | Web client
|
---|
| 65 | ----------
|
---|
| 66 |
|
---|
| 67 | This is a small *webapp* that can be used to perform the same management
|
---|
| 68 | operations you can achieve using the
|
---|
[16] | 69 | :ref:`CLI client<overview_mailjam_cli_client>`.
|
---|