Yahoo! Mail is one of the world's largest mail services (if not the largest - figures are hard to come by), and as such has an impressive and complicated anti-abuse strategy. By far the most common error message email administrators receive from Yahoo! is the oft-derided:
421 4.7.0 [TS01] Messages from 18.104.22.168 temporarily deferred due to user complaints – 22.214.171.124; see http://postmaster.yahoo.com/421-ts01.html
What does it mean?
On their Postmaster web site, Yahoo! writes:
When you see this error message in your SMTP logs (where x.x.x.x is your IP address), it’s because of either of the following:
- We are seeing unusual traffic from your IP address.
- Email from your mail server is generating complaints from Yahoo! Mail users.
Basically, this means your mail server has been hitting Yahoo! a bit too hard with stuff that Yahoo! users don't like. Even if you're not sending "spam", if your newsletter, notification email, or anything else hits a nerve with a small number of Yahoo! users, you may start seeing this failure notification.
What can I do?
If you see this error, you need to take a close look at the traffic you're sending to Yahoo!. MailChannels customers can use the Log Search tool, specifying "yahoo" in the recipient box. If you are using another MTA, you'll need to use its log search function (or grep the logs if you're using an open source MTA like Postfix).
If you are fortunate, you will identify a sender (in your network) or a campaign (if you're a marketer) that Yahoo! doesn't like. Yahoo! may express its dissatisfaction with these messages by rejecting them after the DATA command with an error such as "
554 Message not allowed - ". Or, it may temp-fail after DATA.
What else can I try?
If you can, differentiate your outbound email traffic and send different types of email out through different IP addresses. For instance, if email from some users is being rejected by Yahoo!, maybe send that email out through an IP designated for "mail Yahoo! doesn't like". This may sound like cheating, but in fact Yahoo! will appreciate (in a way that only a machine could truly appreciate) that you've helped to provide them with one clean IP, and one dirty IP that they can block.
MailChannels customers can use IP address pooling to implement this type of differentiation, and monitor the "tempFailedByDestAtData" counter for unusual changes in volume for each sender or campaign. Just assign a different pool to senders or campaigns that trigger unusual amounts of temporary failures after DATA.