I recently discovered an excellent tutorial on setting up Postfix and Courier to use virtual users read from a MySQL database. This caught my attention because it is a much better setup than having real system users for all email addresses, as it allows much more flexibility. I finally set aside some time to set up a real mail server.
I first went through the tutorial installing everything on a virtual server running on my pc. I used a VMware image of Fedora Core 5. You can find that and many other VMware images on VMware's appliance directory page.
I ran through the tutorial, and got everything working relatively quickly. There was one thing I had to add that was not in the tutorial. That was this command:
postconf -e 'mailbox_transport = virtual'
After that, I was able to send and receive emails from my virtual server.
I then went out and bought another VPS account with Tektonic, planning to have another quick and easy install of the mail software. After running through the tutorial twice, I was still unsuccessful. I kept getting an error in postfix's log:
Dec 25 06:41:28 mail postfix/smtpd: fatal: no SASL authentication mechanisms Dec 25 06:41:29 mail postfix/master: warning: process /usr/libexec/postfix/smtpd pid 27714 exit status 1 Dec 25 06:41:29 mail postfix/master: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
These three lines show up in my mail log repeatedly. When I try to initiate a connection to my mail server on port 25, there is no response from Postfix:
telnet mail.parecki.com 25 Trying mail.parecki.com... Connected to mail.parecki.com. Escape character is '^]'.
It just hung after that.
I eventually figured out that I was missing a critical package.
yum install cyrus-sasl-plain
After installing that package, everything works perfectly! I guess it already came installed on my VMware image for some reason.
Thanks to Falko Timme for writing a great tutorial, and for responding to my forum posts asking for help!