I discovered something “interesting” about my mailing list setup and how it’s interpreted by some mail readers. When I was trying to debug it, nothing came up, so I’m blogging here to leave a record. Hopefully, the search engines manage to pick it up. This is a bit tricky, however…
The setup: I run just under a dozen mailing lists for athas.org. The server they live on is the same one that this blog, and several other domains, are hosted on. Because I’m hosting several domains, and I don’t want email bleed (because they’re not all mine), I set things up more or less as described in this howto. So, my mailserver operates off the idea of virtual domains. There’s a special virtual domain, lists.athas.org — all emails sent to this domain are piped into mailman. It’s worked out pretty cleanly, and by doing it that way, my mailing lists are well-deliniated, and I don’t have to update aliases at the mail-server level every time I add or remove a mailing list.
The problem cropped up when I got an email from one of my list subscribers who was using yahoo mail. It turns out that he was getting bounces whenever he tried to respond to a mail from the list. So, I checked out my logs, and found his bounce in my postfix logs. Turns out that he was trying to send email to mochajava.athas.org instead of lists.athas.org. Mochajava is the “real” name of the server.
I had him forward me a copy of a mail from that list. Reply-To header set correctly. So, I know what the problem is: His mail user agent was sending an email to the wrong address. I just had no idea why. Looking through the headers, the only instance of “mochajava.athas.org” I found was in the Recieved headers.
It wasn’t until a couple of weeks later that I realized what it was. lists.athas.org was registered as a CNAME alias for mochajava.athas.org in my DNS setup. So, a ns-lookup gives back something like:
Non-authoritative answer:
Name: mochajava.athas.org
Address: 65.78.231.230
Aliases: lists.athas.org
So, I think what happened was this: Yahoo mail client does a DNS lookup to ensure that the domain in the reply-to actually exists — makes sense from a user-friendly sort of approach — and, upon seeing that the given domain is an alias, replaces the name wih the host’s cannonical name. Unfortunately, my mail server’s setup depended on the use of that alias to direct emails to the list server software …
The solution was simple: Change the DNS entry. Now, lists.athas.org, instead of being a CNAME alias, is a top-level A record. Everything works smoothly now, and replys to the list from my yahoo users actually get sent to the list.
Here’s hoping this helps someone spend less time scratching their heads than I had to…