[Tickets #14110] [ActiveSync] Custom hook breaks send mail functionality
noreply at bugs.horde.org
noreply at bugs.horde.org
Mon Sep 14 13:34:33 UTC 2015
BITTE NICHT AUF DIESE NACHRICHT ANTWORTEN. NACHRICHTEN AN DIESE
E-MAIL-ADRESSE WERDEN NICHT GELESEN.
Ticket-URL: https://bugs.horde.org/ticket/14110
------------------------------------------------------------------------------
Ticket | 14110
Erstellt Von | hn at axxedia-it.de
Zusammenfassung | [ActiveSync] Custom hook breaks send mail functionality
Warteschlange | Horde Groupware Webmail Edition
Version | 5.2.10
Typ | Bug
Status | Unconfirmed
Priorität | 1. Low
Milestone |
Patch |
Zuständige |
------------------------------------------------------------------------------
hn at axxedia-it.de (2015-09-14 13:34) hat geschrieben:
I was trying to implement a custom hook that detects the correct
username for ActiveSync login from a given mail address. This is the
hook I'm using (server and login information changed for privacy
reasons, but you get the idea):
public function activesync_get_autodiscover_username($email)
{
$cmd = 'ldapsearch -H ldaps://my-dc.mylocal.net:636 -x -D
cn=horde,cn=Users,dc=mylocal,dc=net -w somepassword -b
dc=mylocal,dc=net mail=' . $email . ' | /bin/grep sAMAccountName: |
/usr/bin/awk \'{print $2}\'';;
$username = `$cmd`;
return $username;
}
This works quite well, I can use my e-mail address and the hook
provides the correct username and the ActiveSync login is ok.
If the e-mail address is: max.mustermann at mylocal.net it returns the
corresponding username: maxmus
The downside of this approach is, that I cannot send mails from
ActiveSync devices anymore. The ActiveSync.log gives me:
ERR: Address is missing domain.
It seems that ActiveSync is using the username maxmus without a domain
as from address which cannot work, thus the error message is correct.
This shouldn't be happening as I understand that the hook only
provides a login username and nothing more. The example shows exactly
that:
/**
* ActiveSync hook for determing a Horde username from an email address.
*
* @param string $email The email address
*
* @return string The username to use to authenticate to Horde with.
*/
// public function activesync_get_autodiscover_username($email)
// {
// return substr($email, 0, strpos($email, '@'));
// }
Only the username (part of the mail address in that case) is returned.
I assume there must be some kind of bug in Driver.php but I'm no php
specialist, so I have no idea where to look at right now.
When I disable the custom hook in the ActiveSync configuration, all
works as expected, but I have to enter the username manually (not a
big deal, but the end user has to know the username for this to work).
If you need further Information, please ask.
Best regards,
Hendrik
More information about the bugs
mailing list