Lizardnation-ga,
Thanks for contacting Google Answers!
First and foremost, building a web-based mail solution is not the
daunting enterprise it once used to be. There has been a significant
amount of development, even very recently, in the e-mail sector
[particularly on Linux]. I'm not sure what level of knowledge you're
coming from, so i'll start from the beginning.
Your choice of MTA is critical here. You want something that will be
able to function well in a high-performance environment, but you also
need something that is capable of acting well in a distributed
fashion. The most common MTAs are Sendmail, qmail, Exim, and Postfix.
Exim is commonly looked to at many high-profile webmail
establishments, due to a good mix of features, functionality, and
speed.
Resource management becomes a big issue when you are under the load of
several hundred users simultaneously. Open-source products have been
developed on the software side for load balancing lately, but by far
the most common implementation seen is that of a load-balancing switch
capable of being intelligent about IMAP, SMTP, and POP3 traffic within
an internetwork and handling these connections statefully.
Load-balancing switch manufacturers include F5 and Foundry Networks.
The need to handle stateful connections is probably your primary
requirement at least for IMAP and POP3, simple TCP load
balancing/request stuff will probably not work in this regard. One
thing that might be interesting to do more research on is the resource
needs of different daemons, but this doesn't speak to your original
question. None of these items mentioned will probably be able to help
you with techniques such as "weighted" LB where you gauge the activity
of user /x/ and forward him to a server where his resources are better
managed.
As far as spam detection, Spam Assassin (http://spamassassin.org/) is
becoming a very popular system for the detection of spam even in
large, distributed systems. It is somewhat unsuited for
high-performance networks given its dependence on Perl and inability
(at last check) to pipeline messages or thread them. It can only
handle one message at a time per process, and this may be unsuitable
for larger networks. It does allow customizable scoring and
independent configuration.
Virus protection - http://www.amavis.org/ is a good potential piece of
architecture to build on. Check out the talk one of the contributors
gave at Rubi Con, http://www.amavis.org/rubi/mgp00001.html. It is
becoming used at many sites and probably will suit your needs nicely.
As far as a core system or architecture for building your system on,
http://www.squirrelmail.org/ is used by many web hosting providers
(Dreamhost for sure and I believe several others). It is somewhat
customizable and fairly open, so it may be a good piece for you to
build on. Other examples are IMP (http://www.horde.org/imp/), MailMan
(http://www.endymion.com/products/mailman/), and
http://www.courier-mta.org/.
Hey, good luck with this stuff. It looks like a very interesting
project to work on. Lots of folks have tried to tackle this problem
using integrated and diverse approaches to the same problems. The
largest one that tends to be mentioned in the hosting community is
performance and stateful management of connections. It used to be the
architecture of these sorts of systems, but as tools have become more
available - and I mean REALLY recently, like the past few months -
those concerns have died down to be replaced with a strong development
effort towards customizability.
Also, another thing to consider is an LDAP-based infrastructure, check
out http://www.openldap.org/.
Let me know if I can be of further assistance.
Thanks,
arimathea-ga
Research methodology:
- Google searches on: webmail squirrelmail "mail infrastructure" MTA
- Freshmeat (http://www.freshmeat.net) searches
- Personal knowledge
MTAs
Exim - http://www.exim.org
Sendmail - http://www.sendmail.org
qmail - http://www.qmail.org
Postfix - http://www.postfix.org
Load Balancing
Foundry Networks - http://www.foundrynet.com
F5 - http://www.f5.com
LB software
Eddie - http://eddie.sourceforge.net
LVS - http://www.linuxvirtualserver.org
balance - http://balance.sourceforge.net
mod_backhand - http://www.backhand.org/
Freshmeat Search - http://freshmeat.net/search/?q=load+balancing§ion=projects
Webmail systems:
Squirrelmail - http://www.squirrelmail.org/
IMP - http://www.horde.org/IMP/
MailMan - http://www.endymion.com/products/mailman/ |