The default postfix package included with CentOS 5.3 is not aware of MySQL lookup tables, but includes support for SASL authentication using Cyrus-SASL libraries. A postfix + mysql + dovecot setup does not require Cyrus-SASL, but requires MySQL and/or PostgreSQL table lookup support. To correct this problem, a modified postfix package must be used. One solution is to use the CentOS Plus repository for postfix package, which supports virtual users, mysql and postgresql databases for lookups, another solution is to recompile postfix from source using a modified .spec file.
The postfix process should not be started now, it's unconfigured. First, you should consider a place where to store e-mail. I've used a volume mounted on /data for mail storage in my example. It will contain a directory for each virtual domain, and each domain will contain a directory for each mailbox, like: /data/domain.tld/user1/. This directory should be created before receiving first message. Postfix will create automatically the rest of the path (./domain/user), but only when the first message for the user arrives. If dovecot won't be able to access user's home directory, the e-mail client will display an error, even if the username and password are correct.
You should change the following parameters on /etc/postfix/main.cf:
Enable automatic startup of postfix process:
Up: CentOS Mail Server setup: Postfix, Dovecot, MySQL, SASL, Postfixadmin, TLS
Prev: Dovecot installation and configuration
Next: Postfix TLS configuration