I have been working on a project on and off and it has turned out to be one of those 'never ending' issues. While it may seem rather straightforward, it is easy for me to complicate things; please correct me when I am wrong and suggest a better solution if there is one. This may turn out to be a long question that may be worth more than 500 points so let me know what to do about that. Lastly, if possible and necessary, I am willing to compensate for a solution. I have asked about this topic before and I feel as though I need more help than I have received (no offense to those that have helped me out, to the contrary, thank you very much). I just need more help.
Main Goals
Create an expandable email system using (preferably) linux. Money and computers are a limited resource so we hope to be able to start small and be able to grow the system if necessary.
We have a windows application that wants to use the email system using IMAP and SMTP controls. Only one account is created per user.
Resources
Currently, 3 linux machines all connected to the internet if necessary.
Specifics
If you visit the website
http://www.horde.org/papers/Scalable_webmail_HOWTO.html you will see that this paper has a good amount of information on creating a scalable webmail system. At the moment, I am interested in the scalable email system although the webmail portion can be an added bonus.
1. Considering that this paper dates from late 1999, I was wondering if there is a drastic change to how this setup can be accomplished with newer software? Would you still use most of the software mentioned in the paper?
2. Let me know if my understanding of the layout is correct.
- you have one or a bunch of frontend servers with Apache, PHP, Postfix(SMTP), Cyrus(IMAP), LDAP client. These can send, receive and retrieve emails although they use the LDAP server to verify if these actions are allowed.
- you have one or more LDAP servers with the user database
- you have one or more backend servers with Postfix(SMTP), Cyrus(IMAP) and LDAP client. These also use the LDAP server to verify if these actions are allowed.
______________
| |
| frontend farm
| |
--------------------
| ____________________
| | |
|------------------- >| LDAP server/farm |
| | |
| --------------------------
---
______\/_______
| |
| frontend farm
| |
--------------------
3. Is is necessary to have the postfix server on the backend farm computers?
4. Is there a way to pass along backend server information with an SMTP email? Imagine having an application that can do IMAP transactions and that you can benefit from finding out the users backend email server information so that subsequent requests know where to go (keep LDAP quering to a minimum)? From the scheme, I gather that an email goes to the frontend farm that queries the LDAP server. If the user is valid, the email is routed to the backend server that also queries the LDAP server. If the user is valid, the email is stored.
5. Requirements for the various servers.
- Frontend: fast, large amount of RAM, fast network
- LDAP server: fast, large amount of RAM, fast network
- Backend: not as fast, not as much memory, not as fast network, Lots of storage space
What do you think? Am I totally lost/hopeless?