Epistolary
rob carlson . gallery . contact
Other References
DC SAGE
December 10, 2002
December 9, 2002
January 21, 2003
Jerry Bazil
Kenneth Porter
MAILER-DAEMON
May 8, 2003
Microsoft Outlook 2000
MTA
No transport provider was available for delivery to this recipient
Pete Jansson
Rob Banz
Sendmail
smarthost
Triton Container International
user unknown

Community Space
IPac
Preserving individual freedom through balanced information policy.

ARRL
The national association for amateur radio

Indypendent Reader
Progressive quarterly newspaper serving Baltimore, Maryland

Blogosphere

del.icio.us
Digg this!
Google it
Newsvine
reddit
Technorati

Obama 2008
Barack Obama 2008

Recommended by

No transport provider was available for delivery to this recipient

When an Microsoft Outlook 2000 user sends a message to multiple recipients on a local machine and one of those addresses returns an error code, Sendmail instantly replies with a very specific error message, namely "550 5.1.1 joe@bar.com... User unknown".

Outlook chooses to ignore the specific username, and attributes the error message to every recipient of the e-mail when it informs the sender of the problem. with the message "No transport provider was available for delivery to this recipient." This is completely unhelpful to a sender who has 100 addresses in the To: field and needs to figure out the broken one.

The only way to fix this is to have Sendmail blindly accept every incoming e-mail from an Outlook client, and mail the sender a message about the error in a seperate email a minute later.

Here's how I figured this out:

On December 9, 2002 I asked the DC SAGE mailing list if anyone knew how to quell local user unknown responses during mail delivery with sendmail and only follow up with a 550 e-mail after the connection closes.

Pete Jansson wrote back right away to say, "If you use interactive delivery, I don't think you can avoid the messages, because an MTA is required to issue the errors to indicate that the messages to those recipients won't be accepted. You could switch to queued delivery, in which case (I think), sendmail will just eat the entire message and then process it later during a queue run, at which time it would (attempt to) pass a MAILER-DAEMON message back to the sender."

Rob Banz also chimed in with the solution I had played around with earlier, saying "Send all of your users's outgoing email through a server that does no delivery, just relaying. Then the 'user unknown' message will happen between that server and the destination, and you're good-to-go."

I went with Pete's suggestion first, and after a little tinkering the answer for a single e-mail server on a local network seems to be:

/usr/lib/sendmail -bd -q1m -O DeliveryMode=d

This makes sendmail defer delivery on all messages. Basically sendmail will always reply with:

250 2.1.5 joe@foo.bar... Recipient ok (will queue)

instead of

550 5.1.1 joe... User unknown

Then the message for local delivery to joe will sit in the queue for about 60 seconds before sendmail picks it up and attempts the final delivery. At that point it'll either drop it into the local mailbox or service the sender back a NDN message.

Update December 9, 2002: Messages appear to be sitting in the queue for 3 to 20 minutes before final delivery. I remedied this by directing all outgoing mail to a smarthost rather than attempting external delivery from the internal mail server. Pete also added another suggestion:

Sounds like you may have stuff blocking the queue, so you need to start additional queue runner processes. Add these two lines wherever you start sendmail:

/usr/sbin/sendmail -q1m -O MaxRunnersPerQueue=3

/usr/sbin/sendmail -q1m -L sm-msp-queue -Ac -O MaxRunnersPerQueue=3

The second one is for sendmail 8.12.3 and up, which has the separate mail submission queue for locally generated mail.

These lines tell sendmail to start persistent queue runner processes, running the queue every minute, and running up to 3 queue runner processes per queue per run. If you set this value higher, you can really get sendmail to push mail at high speed. Ditch the "-q1m" from the sendmail that has "-bd"; you've got queue running covered elsewhere now.

Remember, you're going to have a trade-off between immediate delivery with immediate "User unknown", and deferred delivery with supressed "User unknown."

Update December 10, 2002: Deferred delivery with frequent queue running seems to have solved the problems. All Microsoft Outlook 2000 users in the company now get informative error messages e-mailed to them from sendmail about a minute later instead of a meaningless message immediately. Everyone seems to be okay with the slight delay of e-mail delivery and we haven't had any more complaints from employees with large mailing lists.

If you're a sendmail admin searched the web like I did for this error message, this is probably the only useful article you found. If this information was helpful to you, please link to this article from your web page and discussion groups to help others find it.

Update January 21, 2003: Jerry Bazil from Triton Container International writes: "In WIN2K settings/controlpanel/mail/showprofiles/properties/properties/servers tab. Check 'my server requires authentication' for the outgoing mail server . In settings check 'use same settings as my incoming mail server'. I can now send email from my pop server account."

This solves the problem of a server which requires SMTP AUTH, not the problem I was having.

Update May 8, 2003: Kenneth Porter mentions a problem he had with the solution.

Found your article and wanted to provide some additional feedback. I tried the 1 minute queue trick and it worked great for the Outlook bad address bug.

The problem I encountered is that my anti-relay rules apparently don't take effect until the queue is run. The mail was returned to the wrong place (forged reply address, of course), and tons of bounces started. At that point the server went into a vicious spiral and was rapidly brought to its knees. I killed all the sendmail processes, flushed the queue, and returned the systemto immediate delivery mode. After that things have returned to normal.

At this point my feeling is that the Outlook user should go pester M$ and "get her money's worth" (yeah, right) and get the bug fixed. Alas, it's a corporate situation and Outlook is being used because of the group calendaring capability lacking from all open source clients, so I can't present an alternative.


No Comments | #2024

Leave a Reply

Please let me know how you got here, if this page was useful to you, and your opinions.

Unless noted, all content on epistolary.org is © Copyright 1999-2008 to Rob Carlson with all rights reserved. All information is verified when possible, cited as appropriate and applied in the real world at your own risk. Send all feedback to rob@vees.net.