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