Free eBook on configuring a mail server with Postfix
Goran Jurić,
Today I finally managed to release a first public version of a book I have been working on for a while.
If you ever wanted to build a mail server but all the tutorials and howtos on the internet where too vague or old, this is a book for you. It will guide you through the setup of a complete email server on a latest Debian 6.0 (Squeeze) distribution. I tried to go beyond just listing steps needed to get a working email server online. Hopefully this book explains a little bit more about the why and not just how.
As everything else in life, this book is a work in progress and I would really appreciate all the feedback I could get. Both positive and negative. I have tried to give credit, where credit is due, but there is always a chance I missed to attribute somebody for the work they did. Don’t hesitate to point that out.
The book was written in Docbook 5.0 format and when my free time allows it I will try to explain a little bit more about the whole process because finding tried and tested information about myriad of choices and tools in the Docbook publishing chain proved to be a not so easy task.
I hope you will enjoy reading Building a mail server on Debian 6.0.
Fred / 28 Apr 11 at 05:28
Goran, this is great. Thanks for doing this.
I’m guessing the work ports well to Ubuntu?
I’ll give it a try. And will let you know
Goran Jurić / 28 Apr 11 at 10:00
Well, I do not see a reason why it shouldn’t work. But I didn’t test it out.
Stanisław Klekot / 28 Apr 11 at 12:15
Well, what’s the point in generating RSA key pair protected by 3-DES in chapter 3.1, when you’re removing encryption in next paragraph? You’ve never thought of how to use /usr/bin/openssl tool, do you?
Goran Jurić / 28 Apr 11 at 12:56
You are right. I am not really an expert in the cryptography field.
I guess the right way would be to remove “-des3″ flag during the generation of the key and skip the part where the pass phrase is removed?
Thank you for your comment.
Mateusz / 19 May 11 at 10:16
Great work
everything works almost as i would love to
but i have one question … about logins, im not going to use multiple domains with some other users … so can we swap authorisation from column username ( where the whole mail is used … ) to column local_part? i have tried to do it but something went wrong
what should I change to make it work ? pam.d, saslauth ? maybe im missing something ?
Goran Jurić / 19 May 11 at 13:19
I am not quite sure, I have never needed this kind of setup.
But, you will certainly have to edit the start up options for saslauthd (note the -r switch, and look into saslatuhsds man pages for explanation). You can also look into the smtpd_sasl_local_domain option in /etc/postfix/main.cf.
But note that you can’t mix and match setups. If you choose not to use full email addresses as usernames you can only serve mail for one domain.
Mateusz / 20 May 11 at 09:46
To be exact … thats what im about to do. i have few domains … but one user database … one domain is set because it was once used … the other is a temporary solution but used by some ppl
and the primary one that SHOULD be used … so what i need is to receive mails for example janedoe@domain1.com janedoe@domain2.com and janedoe@domain3.com all and should be delievered for one account
Goran Jurić / 23 May 11 at 11:10
You can do that with forwards.
Mateusz / 27 May 11 at 11:17
echo DEFAULT_DOMAIN domain1.com >> /etc/courier/authmysqlrc
without any other auth config changes 
and it solves my problem
works like a charm :]
Mateusz / 27 May 11 at 12:19
was a bit hasty about that xD i needed to change in /etc/pam.d/smtp the part with usercolumn=username to usercolumn=local_part in both lines … and set in database column local_part as UNIQUE
this was needed to make sending messages possible ;]
i hope that these information would help someone
codereplica / 2 Mar 12 at 22:46
Hi,
On the dns caching page there is the following config example:
listen-on { 127.0.0.1; }
allow-transfer { none; }
allow-query { 127.0.0.1; };
I think this should be:
listen-on { 127.0.0.1; };
allow-transfer { none; };
allow-query { 127.0.0.1; };
Bind9 wont’t start otherwise