| 1 | Overview of mailjam's architecture
|
|---|
| 2 | ==================================
|
|---|
| 3 |
|
|---|
| 4 | .. contents::
|
|---|
| 5 |
|
|---|
| 6 | Introduction
|
|---|
| 7 | ------------
|
|---|
| 8 |
|
|---|
| 9 | Mailjam has been designed following a **multi-component structure**. There is
|
|---|
| 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 | .. image:: /mailjam_architecture.png
|
|---|
| 17 | :alt: Scheme of the architecture behind Mailjam
|
|---|
| 18 | :class: open_fancybox
|
|---|
| 19 |
|
|---|
| 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.
|
|---|
| 31 |
|
|---|
| 32 | .. _overview_mailjam_daemon:
|
|---|
| 33 |
|
|---|
| 34 | Mailjam daemon
|
|---|
| 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 |
|
|---|
| 45 | .. _overview_mailjam_mta_client:
|
|---|
| 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 |
|
|---|
| 54 | .. _overview_mailjam_cli_client:
|
|---|
| 55 |
|
|---|
| 56 | CLI client
|
|---|
| 57 | ----------
|
|---|
| 58 |
|
|---|
| 59 | This is a shell-like interface that can be used to add mailing lists to a given
|
|---|
| 60 | Mailjam server, edit such mailing lists information, add members, etc.
|
|---|
| 61 |
|
|---|
| 62 | .. _overview_mailjam_web_client:
|
|---|
| 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
|
|---|
| 69 | :ref:`CLI client<overview_mailjam_cli_client>`.
|
|---|