a solution to the Yahoo 421 Temporarily Deferred problem -- Nov 7, 2008
Like others on the Internet, I have been fighting Yahoo's 421 Message from (xxx) temporarily deferred problem. Found part of the problem to be the way Yahoo identifies bad or obsolete e-mail addresses.
Normally, a bad e-mail address is identified with a SMTP response code 550 Recipient unknown message. Your e-mail server sees code 550, stops everything, and lets you know that the e-mail address is not valid.
Yahoo, for whatever reason, responds with code 250 recipient ok and not with 550 -- even if the address is bad. Later on in the transaction, Yahoo will post a code 554 delivery error: This user doesn't have a yahoo.com account or code 554 delivery error: Sorry your message to email@example.com cannot be delivered. This account has been disabled or discontinued.
According to the official documentation, code "554 is to be used to reject a MAIL FROM, RCPT TO, or DATA command that contains something improper". Technically, their use of code 554 is correct. However, everyone else just uses code 550 recipient rejected. Many e-mail server programs assume code 554 is a temporary, not permanent, problem.
When your e-mail software assumes code 554 is a temporary problem, it keeps retrying the message and triggers Yahoo's dreaded spam enforcer -- the infamous 421 Message from (xxx) temporarily deferred response.
The moral of this story: if you run an e-mail list, keep an eye out for undelivered messages to Yahoo addresses and look for a code 550 response.
Installed a new version of MDaemon (highly recommended e-mail server software). In going thru the documentation, came across this option, "Bounce message on first 5XX error from any of receiving domain's MX hosts".
I had been upgrading from one version of MDaemon to the next over the years and, on my server, that option had been left unchecked. The joys of grandfathering [maintaining existing] server settings. The default setting is checked.
Turning on that option pretty much solved the Yahoo 421 problem. And identified a bunch of dead Yahoo e-mail addresses in the mailing lists I host.
Moral #2: Go thru your software documentation every so often and see if your settings make sense.