The deliverable for this job is a script (either an automated bash script, or a detailed step-by-step instruction to be executed by a human) to perform a specific Postfix MTA installation.
There are no local users, instead all emails to any address at a large number of domains (a few hundred) should be received. Received email should NOT be forwarded. Instead, every email should be passed to a third-part program/script, which someone else will write.
Messages should be passed to the 3rd party process via a socket or Unix pipe, or read from a specific file (one per email). The 3rd party program is flexible, please advise what would be the best way to implement this. It could receive messages via network socket, unix pipe, or simply by reading from a specific file (one file per message), for example. Whichever way is chosen, all email headers, message body and attachments need to be made available to that third party program.
The 3rd party program is a permanently running background process.
Furthermore, it must be possible for another third-party program to send out email: From any address on any of those domains to any specified real email address. The 3rd party program is flexible on how it sends email: It could interact with an SMTP port or write to a file, for example. Please advise what would work best.
Email addresses will be created and deleted frequently, thus, the appearance of a new email address should not require any manual configuration steps. The server installation should be able to accept and handle any address on one of the configured domains.
Domains will be created and deleted less frequently, so the running of a script to add or remove a domain is acceptable. The necessary opertions to add and remove domains need to be well documented.
Please assume you are starting with a fresh, blank Ubuntu 12.04 LTS server install. The script (or instructions) must contain and document every single step (including package install, user creation, configuration, etc.) that needs to be taken to setup a fully functional server as described above. Documentation is important.
Furthermore, documentation and/or scripts need to be provided for tasks, such as adding a domain.