How are Your SMTP Timeouts Configured?
Asprin asks: "One of the employees at work had a major headache because a very important email was undeliverable for more than 24 hours. Sure, he got an warning from our server about it, but only after an entire day had passed, and the email was no longer timely. Therefore, I shorted the message handling timeouts to send 'delivery delayed' warnings after 30 minutes and to cancel the message as undeliverable after four hours. Now, I don't expect any of the other mail administrators here to bless these timeouts because they're way too short. HOWEVER, the truth is that my users rely on email to be as reliable as telephone messages, and if it can't be delivered immediately, it is better to reject it outright and alert the user so that other communication channels can be exploited such as fax or Fed-Ex. Is anyone else doing this? Are there any non-obvious ramifications lurking? Pros? Cons? Comments? Should we all reduce these timeouts on our SMTP servers?"
Open relay
what other setting matters.
That said, even if your e-mail server doesn't send you the outage, that doesn't mean the e-mail actually got there. It could have been received by a secondary MX, not the primary one that delivers it.
I'm sure everybody and their brother will mention that read receipts, and receive receipts are a good idea in this case (even those are reliable, but it's better then nothing). Oh, and that if the message was this important, at the very least a confirmation call. You might look like a character out of a Dilbert strip, but it sounds like confirmation would have been worth the embarrassment in this case.
Kirby
You made a good point about sending faxes or using FedEx.
I find the best way to use email is to email the important information, then print out a copy and fax the copy, then call the recipient to find out if they received both the email and the fax.
Without the voice confirmation, it's impossible to tell (as your headached co-worker knows) whether or not the message has been delivered.
I would only recommend setting up something to display a message after 30 minutes of trying, along with the 4 hour essage.
Once they get the 30min or 4 hour message, that should be sufficient for them to take action on their own. I would also suggest adding a message with a listing of possible reasons as to why the email is not going through. The last thing you want are users going to you about "why is it not going through, what did YOU screw up".
You can only do but so much. And email is not as reliable as other services. It's not regular mail, there's no certified letters.
I have my queuereturn set to 2 days and my queuewarn set to 12 hours.
I don't have the queuewarn set to something like 30 mins because I have a feeling my users would complain to me if they got warning messages every 30 mins.
-----BEGIN GEEK CODE BLOCK----- Version: 3.12 GIT d? s: a-- C++++ UL++++ P++ L+++ E- W++ N o-- K- w--- O- M+ V PS+ P
When I was a kid, I used to think that a 2400 modem was really fast. You could download a 300KB game in a few minutes. And I could store dozens of them on my 20MB hard drive.
When I hear newbies complaining about their slow 300KB/s connections and too small 100GB storage units, I feel anger inside. They just can't appreciate the value of technology.
When E-mail was introduced 30 years ago, it was an amazing feat: you could send messages across the country in less time than regular postal service. Wow.
Now we're complaining about limitations of a 30-year old technology that works as intended. Come on. It's still amazing. There are IMs, IRC channels all over the place for these "urgent needs".
Don't blame the hammer if it doesn't mow your lawn.
For God's sake, yes!
Problem number one: For the most part, email is perfectly reliable. If it isn't delivered half an hour, 99% of the time it's because I screwed up the address. I'd like to know after 5 minutes, but I'd take half an hour. And I don't want the computer trying for four freaking days to send an email that I messed up.
Problem number two: Let's say there was a legitimate problem with the network. A router was taken down for maintenance, for instance. These days, people grumble if it's down for more than 10 minutes, and few outages last more than a couple hours. For the re-try interval, 12 hours is probably sufficient, but 24 will cover an overnight outage and its subsequent fix with time to spare. Heck -- How many outages last for more than a day? In the rare event that it does, it may last a week, or maybe a permanent change occurred to keep the mail from ever being deliverable.
So, I have no advice to you other than please, please make everyone you know configure their system as such.
(Flames -- err, I mean opposing viewpoints -- welcome.)
We use dogsleds.
If the dogs come back wanting food without the sled.
Then the driver was eaten by a bear and the
message did not get through and the sled
sunk below the ice.
Resend Message
else If The dogs come back with the sled but
without the driver and w/o reply
Then the driver was eaten by a bear and the
the dogs were hungry so they came home.
Resend Message
else If The dogs come back with the sled and
the reply but without the driver.
Then the team made it to the destination
got the reply but the driver was eaten
by a bear on the way home. However,
the dogs were hungry so they returned.
else If the driver returns with the team and
the reply.
Then the reply is a fake. The driver hung out
at the brothel down the road for a few
weeks and faked the reply.
Resend message.
134340: I am not a number. I am a free planet!
1) Send the email and request acknowledgement in your message
2) Make two printouts of the mail
3) Fax the first printout to your recipent
3) Phone the peer party for the receipt confirmation of both electronic and fax copy of said email
4) Mail the first printout to your recipent, don't forget to request acknowledgement
5) File the second printout in a huge three-ring binder
6) Assign a clerk to have him/her check hourly the status of the emails with the corresponding parties
It's your business on which your life is depending. You can't be too safe, you know.
... when you're dealing with people who don't take email seriously. We just got acknowledgement of an email request on a show-stopping problem, as it worked its way up the corporate ladder; it's already 5 business days old, and JUST reached the boss of the person who may have the information we need, even though the server delivered it to his mailbox within minutes of it being sent.
If the information is important they should pick up the phone. Email is very casual. Calling someone has much more of a personal touch. I also think it's easier to develop a relationship with your customers over the phone.
I wanted to flame our employees after they complained about not being to do business during Slammer worm. Hello, we have fax machines.
One consequence of the ubiquitous use of technology is people get lazy. God forbid they use their Egghead and find another way to work.
Losers whine about doing their best
Winners go home and f*ck the prom queen!
It "arrived" on October 06 2003 and asked about an event in April. I assumed the sender was referring to April 2004 and replied as such.
I got an angry reply telling me to "Check the Date on the Email I Sent You!"
The headers showed October 6. Nothing else!
This guy thought I was JUST getting around to checking my email and was really pissed off that I took 6 months to respond to him!
I thought this stuff only happened to the USPS.
I like microcars
Uhm... NO!!!
The timeouts are there to handle cases where a remote server is off the net for whatever reason. While I can see shortening the warning message, your not helping yourself if you shorten the period of time that the server attempts to deliver for.
Sendmail (I'm not sure what MTA is being used for this example, but I would hope that would be irrelevant) can handle multiple queue times based on the priority of the message. With this you could have the high priority mail fail in 12 hours while normal mail takes a normal amount of time.
When mail runs great, its smooth and very timely. But when it breaks, it can go down hard.
In my experience, the recovery of a mail server isn't what takes the most time, its the ammount of time it takes to process the backlog from other servers queues.
If you run at 50% capacity, then basically, an outage of 2 hours will take you 2 hours more to get caught up, and thats assumeing that your server is running optimally. Best way to find bottlenecks in your mail servers is to shut it down for an hour and see what stops it from working (syslog is great for doing this if you have unbuffered logging).
Timeouts are there to help the system recover when something goes wrong. Use the priorities to change the timeouts, but dropping mail too quickly is just doing everyone a disservice.
Personal experience. I saw a system setup to drop all messages that were not delivered in 45 minutes. I was floored when I saw this. They had a problem with the machine and their system took almost a week to stabalize and catch up (underpowered systems running too many opposing services. DNS on the mail servers is not good since when you do alot of mail, your lookups steal CPU from your mail servers and the problem gets amplified when you processing the backlog)
I think the main issue here is expectations. Make sure you set those right. Your users' expectations sound a little off the mark for E-mail. I don't expect them to understand what's involved under the hood, so maybe you need to educate them. Servers can and do go down. A four-hour window is just way too small.
Use another medium for super-urgent communications, like IM or phone. Or just simply follow up with a phone call: "Did you get that urgent E-mail? No? OK, I'll look into it."
X-Undelivered-Abandon: 3600
X-Unread-Warning: 14400
X-Unread-Abandon: 176800
Translation: warn me if it takes more than 15 minutes to hit his server, and give up if it remains undeliverable an hour after I sent it. Warn me if the recipient takes more than 4 hours to read (IMAP) or fetch (POP3) to fetch the message after it arrives in his mailbox, and destroy it if it remains unread/unfetched for two days.
Got time? Spend some of it coding or testing
Anyone know if there is a standard for email receipts?
As others have mentioned, even if the message leaves YOUR server, that really doesn't mean it was read. For me, I try to request a quick (manual) receipt for any important messages where time is of the essence; but it gets ignored most of the time. =)
What would be nice is if there was a standard for email "read" notices. Is there one? I sort of doubt it, considering the hacks I've seen to try and emulate it. Outlook has a proprietary thing that I doubt works. I've also seen what amounts to a webbug being used for HTML messages.
after 60 minutes, it notifies the luser the mail is having problems arriving to the destination host but the server will keep trying, and after 48 hours notifies the user the message cant be delivered at all.
Lawyers, MBA's, RIAA? A jedi fears not these things!
I have delay sent out after just a few minutes. If a message can't be sent in the first 10 minutes, chances are it's not going to be sent for the next few hours. So my delay message is short, letting the user know that the message isn't getting through. However sometimes things clean themselves up after a few days, so my "failure" message is set for 3 days. That way the message can keep trying as long as is reasonable, but the user also is informed right away that there may be problems.
- confTO_QUEUERETURN_NORMAL
- confTO_QUEUERETURN_URGENT
- confTO_QUEUERETURN_NONURGENT
and the same again with "WARN" in the place of "RETURN". The best thing is, if you set these in a certain way it *really* causes grief for those pricks that like to set the urgent flag on all their emails because they get innundated with warnings. It's like a LART, only without the lawsuit.UNIX? They're not even circumcised! Savages!
Could this problem not be solved by using the (RFC2852) Deliver By mechanism when submitting the email where timely delivery is important?
After the Sobig virus so of our email were taking 3 hours to get through and alot of our users were asking us why it took so long to send an email to someone that was less than 20 meters away (our ISP still does our email as I haven't had time to set one up in house). After getting close to 20 people asking me the same question I sent out an email giving everyone a quick idea of what happens under the hood and how it was a miricle that they got email at all.
It went something like this (short version):
When you click on send the message is sent to our ISP. Our ISP then sends it to another ISP (our old ISP that till host our mail)which then sends it back to us. At each ISP it goes into a que with 1,000 of other messages. For your email to get from you to the person 20 meters from you it has to travel 6000+ km (Australia is a big country and our current ISP is in perth) and it normally does this in less than 5 minutes.
Also there are currently two viruses on the internet that have slowed down the entire internet: SoBig and Slammer.
After I sent the email out and explained how email worked and why everything was so slow lots of the users told me that they never new so much happened in the background. I haven't had anyone complain about email again.
Apart from the occasional typo, I've never had a problem with mail not getting delivered. However I have had problems with it getting spam-filtered. One time it was because of a 'parody' version of the stupid disclaimer that PHB's seem to like putting on all their mail, which just happened to use a few too many of the wrong kind of keywords. Another time I was suggesting some software changes, and provided URL's for the appropriate RFC's.. My mail eventually got noticed, but it sat in the 'spam' folder for a week or two first.
455fe10422ca29c4933f95052b792ab2
You obviously haven't been around long. Some people on the net remember when email was slower than the postal service. 2 weeks to send a normal message was a common thing. It was free to the sender though, because someone else paid the long distance telephone bills (this is pre-breakup so the monopoly charged a lot more than they do today, and there has been a lot of inflation too)
I'm not quite that old, but I've done a lot a messaging on a 300 baud modem. The upgrade to 1200 was something I wished I could afford for years. Then a year latter lightening took out the modem and I was back to 300 baud until I could afford a modem again.
E-mail is asynchronous. There's no guarantee that it will be delivered in a certain amount of time.
The telephone is synchronous. When it's answered, you're talking to the person real-time.
You've got to pick the right communications medium for the message. If your house is burning down, would you send an e-mail to the fire department? You'd be stupid to do that. And, going the other way, trying to turn a synchronous communications medium into an asynchronous one has given us all the curse of the 'voice mail' and the 'answering machine'. Voice mail is a hack, trying to make the telephone do something it wasn't meant to do. And, as a hack, it's cumbersome to use. Virtually all voice mail systems work differently, and they make you go through their menus in a serial fashion. See how long it takes to delete 100 voice mails, and you'll know what I mean.
Educate your users.
If tits were wings it'd be flying around.
Scary, isn't it? (-:
Got time? Spend some of it coding or testing
But I digress... I'd say cut those times down, and make sure people ain't trying to e-mail CDs to their buddies
I think that most mail apps support return receipts? Heck, even webmail will. A big problem is that even if email is sent, there's no guarantee that it will be read in a timely manner. At least if you train your personnel to use return receipts, they'll know themselves whether or not the message got read (and if they don't get it by when they want, pick up the phone!).
Is there an equivilient server-side protocol to return a receipt if mail is sucessfully delivered? I suppose you could just write it into your SMTP delivery system, that a mail returns a message if it went through (or a web-visible mail queue, whatever).