Ask HN: Yahoo disregarding RFC 5321 retries
Yahoo sent an 'unable to deliver message after multiple retries, giving up' message after exactly three hours.
Three hours is exceedingly short and my understanding has always been that mail is re-tried for a number of days with a backoff algorithm controlling how often.
Is this now common? I am left to wonder how much mail was lost for good during this outage because others have also taken the Yahoo approach.
RFC 5321 suggests:
Retries continue until the message is transmitted or the sender gives up; the give-up time generally needs to be at least 4-5 days. It MAY be appropriate to set a shorter maximum number of retries for non-delivery notifications and equivalent error messages than for standard messages. The parameters to the retry algorithm MUST be configurable.
36 comments
[ 5.0 ms ] story [ 77.5 ms ] threadThat is definitely in the realm of the server being tasked with delivering your mail.
In traditional desktop Mail clients the Outbox is a local folder and stores Mail that hasn't been delivered to the Server tasked with sending out the mail.
The retry method mentioned here is about a Mail that has been delivered to the outgoing mailserver which in turn may have trouble reaching the destination server
The other evidence, however, suggests that "good email neighbor" is not a goal for either Yahoo or Google.
For example of you send a message from Gmail to another Gmail user with a full mailbox, it keeps retrying delivery for many days.
2. I'd double check you didn't bring the server back online but misconfigured such that it rejected the message.
Can you expand on this? It's been a while since the previous century but I don't recall those messages ever being confusing.
People refuse to read messages from computers because those could only be words that only computer nerds understand.
They also didn't localize to the user's language when sent by remote servers, and were frequently sent at 3am (did you want your phone going ding new email at 3am?)
Nowadays it's assumed that the mail server is set up for high availability on good networks so it's a better experience for the sender to know right away that it wasn't deliverable so that they can use another communication channel for semi-urgent messages.
The ideal situation would be for the sender to get a retry warning while still retrying (which is they way it used to be done), but I can see why Yahoo might not want to tie up their resources that way.
Moreover it is just inside the boundary of the RFC. The standard does not explicitly reject a zero number of retries, nor does it insist on the failure window; the language is noncommittal, and for an RFC that is significant and can only be interpreted as intentional.
The standard in the past has been "we tried to deliver the message but were unable, we will continue trying until XXX" where XXX was measured in a few days.
Getting the above message is sufficient to allow the use of other messages for something that is time critical.
Instead, Yahoo is bailing out completely after just three hours.
If you rely on a free mail server, you can expect to get everything you paid for. Pending outbound mail has to hang around in a queue, which costs money.
In the days when the original specs were written, mail was often multi-hop, and delivery was unreliable. Most email nowadays gets transferred in seconds, so queueing something for 4 days seems unnecessary.
But people do still run their own mailservers, on home equipment - which might fail to accept delivery, because it blew up, or suffered a power-cut, or needed to be rebooted, or whatever.
It's not reasonable to expect a freemail provider to maintain a sensible outbound queue. And it's not reasonable for a freemail provider to scrub the queue after 3 hours. Solution: get a real mail provider.
Hence my reply.
I wasn't referring to anyone in particular by the word "you"; I could have said "one", but to me that sounds poncey. I was addressing people here (in a rather preachy way; sorry).
I was explicitly critical of Yahoo's limitations as a mailserver. When I ran mailservers, Yahoo was the biggest enemy - they rejected mail, and they sent huge amounts of spam.
[Edit] Wrong, Hotmail was much worse than Yahoo. Sorry, Yahoo; I guess you were one of the good guys.
I could of course have used a gmail or other account but the yahoo mail page was open at that time.
It sounds like your mail server's uptime is below modern industry standards.
A 24 hour outage is somewhat long in the email world, isn't it?
That's a genuine question, I'm not sure, but it sounds like a long time.
Google's SLA is three nines, which is just under 9 hours per year.
If I were to guess, Yahoo doesn't really expect any mail server to be 100% down for anything close to 4 hours at a time.
Such outages just happen. Of course Yahoo offering their service for "free" (i.e. some moderate price paid in customer data and advertising annoyances) won't necessarily make any efforts to tolerate them.
Perhaps then Yahoo is just like, welp, resend your email.
The reason for the delay in recognizing an issue existed is that same domain email was working as were the other internet facing services. The firewall had choked on state tracking of port 25 but was otherwise functional.
I still expect 72 hours.
You'll never know this, because SMTP does not have delivery guarantees. It's totally possible for any message to just disappear. Not likely these days, but possible.
My gut feeling is that almost nobody waits more than few hours, probably even less.
But at least whoever tried to send you email got a 'well we tried to send but failed' so they know to reach you in some other way.
Perhaps my shock at the 3 hour drop window is because I have 20+ years of email experience (including bang addressed uucp mail) and the prior norm was an undeliverable but will retry until XXX message, not just a we give up message.
This used to be the typical way of handling things:
This is the mail system at host abc.xyz #################################################################### # THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. # #################################################################### Your message could not be delivered for more than 4 hour(s). It will be retried until it is 5 day(s) old. For further assistance, please send mail to postmaster. If you do so, please include this problem report. You can delete your own text from the attached returned message.
Bottom line seems to be, if you host your own email expect inbound mail to begin permanently failing after three hours should your server (or routing to it) be down longer.