Contents
Mailjam has been designed following a multi-component structure. There is a daemon that manage the mailing lists and members information in a storage backend and there are different kinds of clients (currently, three of them) that interact with the daemon using a XMLRPC link.
This is the scheme of the architecture:
The daemon will perform all the operations regarding the management of the mailing lists and members. The daemon will save information of a given mailing list to the storage backend, and will read information of already saved lists from there too.
It listens for incoming XMLRPC requests on a given tcp port, allowing clients to add/update/delete data from the backend.
This client is attached to a given MTA, and is called but the MTA itself when emails for a mailing lists are received. The client performs some checks on the backend to tell the MTA what it has to do with the incoming emails.
This is a shell-like interface that can be used to add mailing lists to a given Mailjam server, edit such mailing lists information, add members, etc.
This is a small webapp that can be used to perform the same management operations you can achieve using the CLI client.