[imp] Trouble with email addresses containing empty domain labels
Jan Schneider
jan at horde.org
Fri Feb 16 11:53:38 UTC 2018
Zitat von Jens Wahnes <wahnes at uni-koeln.de>:
> Jens Wahnes wrote:
>> Jens Wahnes wrote:
>>> Jan Schneider wrote:
>>>
>>>> I was able to track this down to Horde_Idna. The error will be catched
>>>> in Horde_Idna 1.1.0 and displayed smarter in IMP 6.2.18.
>>>
>>> I looked into this again today. Even though I have got the new versions
>>> installed (both Horde_Idna 1.1.0 and IMP 6.2.18), I still seem to get
>>> the same error, i.e. no warning when sending an email to an address like
>>> foo at example..com and the mail is actually being sent to "foo" without
>>> any domain. Are there any other dependencies that I may have missed?
>>
>> I can see this working on demo.horde.org, i.e. trying to send an
>> email to "foo at example..com" from demo.horde.org is aborted with an
>> error message. Still, this does not happen in our setup. On our
>> systems, the email is being sent to the "localpart only" address
>> instead. Is nobody else having this problem?
>>
>> Looking for things that are unique to our setup, I thought that
>> this might be because we use a "pre_sent" hook to add headers to
>> outgoing email messages, but even when disabling that hook, the
>> problem persists. I don't seem to be getting any hint from the
>> log files neither. So I'm running out of clues what part of our
>> configuration might be causing the trouble. Maybe someone has got
>> an idea how to debug this further? Could it be caused by other
>> hooks we've got?
>>
>> What strikes me though is the fact the error message I get on
>> demo.horde.org when trying to send an email to "foo at example..com"
>> is "Invalid e-mail address (foo at example..com)."
>> According to the code that I see in .../imp/lib/Compose.php around
>> line 1300, this would be the error message that is generated upon a
>> Horde_Mail_Exception, not upon Horde_Idna_Exception, because in the
>> latter case, the message would contain a colon. I thought this
>> whole problem was related to Horde_Idna? To me, the code added in
>> the commit
>> <https://github.com/horde/horde/commit/36b0073ab1184a4b6f2a2beea3c286ce087c763d> suggests that catching Horde_Idna_Exception is supposed to fix the problem? Or am I on the wrong track
>> completely?
>
>
> I was revisiting this problem today as it persists in our environment, using
>
> Horde_Idna 1.1.1 stable
> imp 6.2.21 stable
>
> What I was able to find out is that whether or not the problem will
> be caught by the fix mentioned above depends on the "maildomain"
> setting for the mail server used (as set in Imp's
> backends.local.php). If "maildomain" is set to the empty string, as
> is the case in the "advanced" configuration given as an example in
> backends.php, an error message is displayed if one tries to send an
> email to e.g. "john.doe at example..org" with two adjacent dots in the
> domain name. However, if the "maildomain" property of the mail
> server is set to a proper hostname, e.g. "example.net", no warning
> is displayed and the email is sent to e.g. "john.joe" without a
> domain name.
>
> I tried to work around this using a hook, that is "public function
> compose_addr(Horde_Mail_Rfc822_Address $addr)" as described in Imp's
> hooks.php.dist. The idea was to look for addresses that contain
> ".." in the host part of the email address and reject them in the
> hook. However, that did not work either. When the backend's
> "maildomain" property is set to e.g. "example.net" and one tries to
> send an email to the misspelled "john.doe at example..org" address
> again, then inside the hook the $addr->mailbox variable will be set
> to "john.doe", but the $addr->host variable will be "example.net"
> (as given in the "maildomain" setting) and not "example..org" (as
> given by the user writing the email message). So one cannot catch
> the wrong email address there. Of course, the email is sent to just
> "john.doe" (without domain name) eventually without the
> "example.net" suffix applied. (In the imp_sentmail table, this will
> be recorded as "john.doe at example..org"). If anyone else is going to
> try this out, please note that changes made to backends.local.php
> will only be applied to new sessions, so one has to re-login to
> properly test those changes.
>
> Any chance for an easy fix to this?
>
>
> Thanks
> Jens
I still cannot reproduce this, even with the 'maildomain' setting
popuplated. I get the same error message with and without that. And I
always get the error message including the colon. I get that on
demo.horde.org too though.
--
Jan Schneider
The Horde Project
https://www.horde.org/
More information about the imp
mailing list