Quoting www.postfix.org »Postfix attempts to be fast, easy to administer, and secure, while at the same time being sendmail compatible enough to not upset existing users. Thus, the outside has a sendmail-ish flavor, but the inside is completely different.«
Doesn't it look impressive? - It looks much more complicated as it is. Postfix is indeed nice to configure and handle
Unlike sendmail, postfix is not one monolithic program, it is a compilation of small programs, each of it has a specialized function. At this place I don't what to go into details with program does what. If you are interested how Postfix is working, please see the documentation at http://www.postfix.org/docs.html
In this document you will find the information what to put in the config files
The Cyrus IMAP is developed and maintained by Carnegie Mellon University.
Unlike the WU-IMAPd Cyrus is using its own method to store the users mail. The data is stored in a database, this makes Cyrus so performant. Especially with lots of users and/or lot of big emails, there is nothing such fast as the Cyrus IMAP-server.
Another very important feature is, you don't need a local Un*x user for each account. All users are authenticated by the IMAP-Server. This makes it a great solution for really huge base of users.
User administration is done by special IMAP-commands. This allows you to either use the commandline interface, or use one of the available Webinterfaces. This Method is much more secure than a Webinterface to /etc/passwd !
Starting from Cyrus 2.1, the SASL-lib version 2 is used for authentication. So for the setup described in this HOWTO there is a tree-layer authentication implemented. Cyrus authenticates with saslauthdaemon which forwards the request to pam_mysql which finally looks up the MySQL-table.
Since CMU changed the license policy for Cyrus, this software is going to be used by much more users
MySQL is a very fast, powerful and very nice to handle Database.
Since Cyrus can authenticate its users with pam, you can use pam_mysql as a connector to the Userdatebase stored in MySQL. This allows you to create a nice Webinterface for your users for changing passwords, define and delete aliases and more.
pam means "Pluggable authentication module" and was originally proposed by some people at Sun. In meantime a lot of modules have been developed. One of them is an interface to MySQL
With pam_mysql you to store the users password in a mysql database. Further, Postfix is able to lookup aliases from a MySQL-table. At the end of the day, you have a base for all administrative tasks to be done by the Sysadmin.
Further you will be able to delegate some tasks to Powerusers, e.g. creating Accounts for a particular Domain. Changing passwords and creating new aliases can be delegated to the user. At the end of the day you as a Sysadmin have the time to do some more productive tasks, or write a HOWTO for the Linux Documentation Project :-)
Web-cyradm is the Webinterface that allows you to perform the administrative tasks to your mailsystem This Screenshot shows the domain-administration part of Web-cyradm.
Web-cyradm is written in PHP, which is often installed on webservers. Time to set up Web-cyradm takes just a few minutes.
Features:
Administration of multiple virtual domains
Setting of quotas
Automatically create username, either with a defined prefix, or the domainname as postfix
Delegate tasks like creating new users to »Domain Masters«
Map user-accounts to emailadresses
Support for MySQL and PostgreSQL
i18n (internationalization) support
Chinese translation (Simplified Chinese zh_CN)
Danish translation (da)
German translation (de)
Hungarian translation (hu)
French translation (fr)
Italian translation (it)
Portuguese translation (pt)
Russian translation (ru koi8r)
Web-cyradm has support for different roles of its users. If you plan to use is as a frontend for your powerusers, please notice, that security may be a problem, the role based stuff needs a security review.