In Horde3 with IMP4, the IMAP server configuration in imp/config/servers.php had a 'realm' parameter:<code><code type="php"> $servers['imap'] = array( 'name' => 'IMAP Server', 'server' => 'imap.example.com', 'hordeauth' => false, 'protocol' => 'imap/notls', 'port' => 143, 'maildomain' => 'example.com', 'smtphost' => 'smtp.example.com', 'smtpport' => 25, 'realm' => 'example.com', 'preferred' => '', ); </code> The purpose of the realm parameter is to append a realm/domain to the Horde username after login. For example, a user that logged into the server 'imap' from above with a username 'john' would have their Horde username set to 'john@example.com'. This is useful if you are supporting multiple IMAP servers with a single Horde installation and the usernames in each IMAP server may overlap ('john' at server1 and 'john' at server2 are not the same person). Horde4 with IMP5 does not have a native 'realm' parameter in imp/config/backends.local.php, but you can replicate the same functionality by modifying the horde 'authusername' hook. In horde/config/hooks.php:<code> public<code type="php"> public function authusername($userId, $toHorde){ if{ if ($toHorde) {//// Get the IMAP connection object$imap =$imap = $GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create();//// Get the IMAPhostname $hostspec =hostname $hostspec = $imap->ob->getParam('hostspec');//// Load the backends.local.php server configs$servers$servers = IMP_Imap::loadServerConfig();//// Look through each server for a hostname matchforeachforeach ($servers as $server) {ifif ($server['hostspec'] == $hostspec){ //{ // Append the 'realm' parameter$userId$userId = $userId . '@' . $server['realm'];break; } } return $userId; } else { // strip the domain off $userId = substr($userId, 0, strpos($userId, '@')); return $userId;break; } } return $userId; } else { // strip the domain off $userId = substr($userId, 0, strpos($userId, '@')); return $userId; } } </code> Here is an example IMAP server config from imp/config/backends.local.php:<code><code type="php"> $servers['imap'] = array( // ENABLED by default 'disabled' => false, 'name' => 'IMAP Server', 'hostspec' => 'localhost', 'hordeauth' => false, 'protocol' => 'imap', 'port' => 143, 'secure' => 'tls', 'maildomain' => 'example.com', 'cache' => false, 'realm' => 'example.com', ); </code> Note the non-standard 'realm' parameter which is used by the authusername hook later.