[Tickets #12990] Re: SMTP error message not included in IMP Compose error message for SMTP 550

noreply at bugs.horde.org noreply at bugs.horde.org
Thu Mar 6 23:53:34 UTC 2014


Ticket URL: http://bugs.horde.org/ticket/12990
  Ticket             | 12990
  Updated By         | Michael Slusarz <slusarz at horde.org>
  Summary            | SMTP error message not included in IMP Compose error
                     | message for SMTP 550
  Queue              | Horde Framework Packages
  Version            | Git master
  Type               | Enhancement
  State              | Resolved
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             | Michael Slusarz

Michael Slusarz <slusarz at horde.org> (2014-03-06 16:53) wrote:

> The recent commit changing the message text still doesn't help in  
> identifying the faulty address. It ends up intentionally hiding  
> information from the end-user; information they need in order to fix  
> their typo.

550 errors have nothing to do with "typos".  That *may* be a cause,  
but it certainly isn't the only cause.  And it almost certainly isn't  
the most common cause since the vast majority of SMTP servers do NOT  
do mailbox verification during negotiation.

> It's not a problem with only one destination address, but when a  
> user types an adhoc To/CC list including 10+ local users, typos do  
> happen.    WIth remote addresses, these just bounce later (with  
> non-translated errors); but with local addresses, the message does  
> not send until the error is corrected.

Again, 550 errors have nothing to do with typos.  It may trigger one,  
but 550 != invalid e-mail address.

> Not telling the user WHICH address is the problem is a bad idea, and  
> that's just what hiding this message does.

I believe your issue is that you are expecting/wanting SMTP to do  
email validation.  Most people don't want this ... since it is  
entirely site dependent.

>> And we shouldn't be showing the response text from the SMTP server to
>> the users if at all possible, since for non-english speakers it's not
>> going to make any sense.
> I understand the desire to translate everything in the UI, but the  
> translation of "Mailbox unavailable", without any details, will help  
> nobody; while "<test at example.com>...  User unknown" (even  
> untranslated) will at least tell the user WHERE the issue is.

Again... you are assuming this is an issue with e-mail addresses  
format and/or existence.  But most 550 errors have nothing to do with  

A far more common issue would be a DNS glitch.  i.e. you send to  
foo at example.com, but for some reason example.com is not resolvable at  
the minute.  By definition, this is a permanent error (example.com  
doesn't exist) so this would be a 550.

So you obviously can't tell a user that their e-mail can't be sent  
because foo at example.com is invalid or is mistyped because that is  
simply an incorrect statement.  And since there is no way of knowing  
why the message transmission failed, you can't be any more specific  
than that.

Which is why almost every SMTP server doesn't try to validate at the  
submission stage anymore, since transient errors like the DNS issue  
can be fixed without further user intervention (or the user even  
knowing something was wrong).

If you want to be doing e-mail validation (for, say, local addresses),  
there is an IMP hook for precisely these kind of purposes:  

More information about the bugs mailing list