Internals of an Advanced Mail Platform using Postfix: A bird’s-eye view (Part 1)

Posted : June 7, 2004 at 4:07 pm [America/Los_Angeles]


Click on the image to see an enlarged view

If you’ve ever attempted to set up an “Advanced Email platform” using open-source software, you would know that it can get extremely frustrating in a hurry. Many of these documentations are outdated. Most use a certain permutation and combination of softwares that would probably not be your top picks. The complexity is compounded by the fact that they rarely ever start their documentation by saying:

Btw, before you jump into installing these bazillion open-source softwares to achieve email nirvana, here’s:

a) what you’re attempting to do and why

b) the list of all the softwares that you will be using and

c) a bird’s-eye view of what the end-result would look like if everything goes per the plan

To be fair, there are a few which do a superlative job of presenting this information.

So, what’s my definition of an Advanced Mail Server:

  1. The email platform should be stable, reliable and easy to manage
  2. Handle emails for lots of users all on same or different domains. In other words, this platform should be able to handle virtual domains in a way that keeps each domain independent of each other
  3. Email accounts should not require unix shell accounts
  4. At no point should a user’s password be flying over the wire in clear text. However, if the email accounts are not Unix shell accounts, this restriction could be relaxed depending upon your security needs. Basically, utilize SSL/TLS for transport layer security
  5. A single data store (containing user information) should be used to authenticate SMTP(S), IMAP(S), POP(S) and Web clients
  6. Act as SMTP clients for users without knowing their IP addresses upfront. Basically, allow users on dial-up or a dynamic IP address arrangement to be able to use this platform for their relaying needs. No, you cannot use open relaying to achieve this goal
  7. Scan emails for virus and/or spams
  8. Support mailing lists for any of the virtual domains hosted on the platform

My (planned) list of softwares:

  1. Postfix 2.x (SMTP server)
  2. Cyrus SASL over TLS (to support SMTP AUTH)
  3. pam_mysql (to support authentication against MySQL database)
  4. Courier IMAP/IMAP-SSL, POP3/POP3-SSL (IMAP/POP3 servers)
  5. Squirrel Mail (web-based access to mailboxes)
  6. Mailman (Mailing list manager)
  7. Amavisd-New (A wrapper software that in turn invokes the Virus and SPAM scanners
  8. MySQL (relational database storing user credentials and even Postfix details)
  9. Apache 2.x with PHP (4.3.x) (Web server for hosting Squirrel Mail)

So what will all these softwares look like when I am done:

The schematic shown here is my attempt at putting a picture that hopefully tells the bird’s-eye view story that I was alluding to earlier in this post. If the schematic above opens more questions than answers them, hang in there. The follow-up posts (hence the Part 1 in the entry title) in the days to come should make things clearer.

Wish me luck If you’ve a suggestion or advice, I would luv to hear it as my implementation starts tomorrow (06/08/2004).

- Anand

Viewed: 737 times