At work, I have to deal with a ton of mail bounces. We get hundreds a day. Automating the process has been a bit of a side project of mine, but it’s been slow going, for the simple reason that mailservers don’t use standard codes. I’m able to catch something like 50% of mail, but that’s still a lot that gets missed. Some is base64 encoded, and in others, people just thought they’d get cute and use wholly custom text to indicate the problem. When you’re AOL I can write a filter to match “MAILBOX NOT FOUND” even though there’s no 500-level error. When you’re joesdiscountplumbing.com, I’m not going to waste my time. (VERP kind of solves this, except that Exchange doesn’t support plus addressing, so we’d need to set up a new MX to catch mail, which means we’d need to send mail from a new subdomain, and it quickly becomes a really involved project.)
But anyway, today I got this awesome bounce message (I’ve removed the user’s e-mail address):
Message from yahoo.com.
Unable to deliver message to the following address(es).
/libexec/ld-elf32.so.1: Shared object "libc.so.4" not found, required by "qmail-local"
For the uninitiated, that’s a baaaad error on Yahoo’s (or maybe AT&T’s?) end. libc.so.4 is the C library. It’s not quite apples-to-apples, but think, “Cannot find kernel32.dll.”
It’s probably something like a corrupted disk in one of hundreds of servers, but it certainly stood out from all the other “Mailbox unavailable” messages that came in. (I do see a surprising amount of mailservers that give ridiculous errors in some situations, like putting the full SQL query used to try to find the account in the bounce e-mail, or complaints about file permissions.)