Notes on my fedora sendmail setup. I have had my fedora linux server setup for a couple of years with no email — on purpose, to avoid spam hassles. But to help my blog work better with plugins I decided to get this machine running sendmail.
I’ve done fedora sendmail setup before on another one of my servers, but it had been so long, I had to start from scratch. I started by finding a good general setup guide. This one on the fedora wiki was most worthy.
So the instructions were pretty straight forward. Since I own my domain name and have a static IP address, the setup is easy. So I followed the instructions and, well, it didn’t work. My first problem:
Fedora Sendmail setup emails bounced, because email is from user@localhost
So my first couple of test emails sent to my web account bounced back to me, they looked like this:
----- Transcript of session follows ----- ... while talking to mx0.gmx.com.: >>> MAIL From:<[email protected]> SIZE=665 <<< 550 5.1.8 Cannot resolve your domain {mx-us004} 554 5.0.0 Service unavailable
So I had to figure out why my server was putting [email protected]. I learned that my /etc/hosts file was setup wrong. There’s lots of fedora tips on how to setup your hosts file (here’s a related posting), mine was setup wrong. One tip, use the sendmail diagnostic tool, as follows:
# sendmail -d0.1 -bv root [...] SYSTEM IDENTITY (after readcf) (short domain name) $w = myserver (canonical domain name) $j = myserver.mydomain.net (subdomain name) $m = mydomain.net (node name) $k = myserver.mydomain.net [...]
The above is good. Before I debugged my localhost problems, this command showed localhost in each of the domain name lines. Also, for debugging, I recommend using the mail -vv (two v’s) command line option. It’s easier than looking in the /var/log/maillog file.
Next problem: the emails were addressed [email protected]
The emails were working, but the From line should say [email protected]. I had to relearn how sendmail masquerading worked. I had to setup the key parameters in the sendmail.mc file, as follows:
MASQUERADE_AS(`mydomain.net')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl FEATURE(allmasquerade)dnl MASQUERADE_DOMAIN(localhost)dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl MASQUERADE_DOMAIN(myserver.mydomain.net)dnl
But the masquerading wasn’t working. When I went to the official sendmail man page for masquerade, it talked about the EXPOSED_USER option. By default, sendmail assumes the root user never wants to be masqueraded. Of course, I was troubleshooting my sendmail setup from the root login, so this option had me thinking something was wrong. I turned of this option, and finally my fedorda sendmail setup was finished. It took way longer than I thought it would and I felt it was worth writing up.
For reference, here’s what I changed in my sendmail.mc file:
define(`confLOG_LEVEL', `9')dnl dnl EXPOSED_USER(`root')dnl MASQUERADE_AS(`kozikfamily.net')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl FEATURE(allmasquerade)dnl MASQUERADE_DOMAIN(localhost)dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl MASQUERADE_DOMAIN(kozik2.kozikfamily.net)dnl