mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-21 23:43:17 +01:00
* Mail: implement Exchange login-type "domain/username"
This commit is contained in:
parent
73061b2931
commit
edec090e17
@ -129,6 +129,7 @@ class admin_mail
|
||||
//'admin' => 'Username/Password defined by admin',
|
||||
'uidNumber' => 'UserId@domain eg. u1234@domain',
|
||||
'email' => 'EMail-address from account',
|
||||
'domain/username' => 'Exchange: domain/username',
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -60,7 +60,7 @@ use Horde_Mail_Transport_Smtphorde;
|
||||
* @property-read string $acc_smtp_pw_enc Credentials::(CLEARTEXT|USER|SYSTEM)
|
||||
* @property-read string $acc_smtp_type smtp class to use, default Smtp
|
||||
* @property-read string $acc_imap_type imap class to use, default Imap
|
||||
* @property-read string $acc_imap_logintype how to construct login-name standard, vmailmgr, admin, uidNumber
|
||||
* @property-read string $acc_imap_logintype how to construct login-name standard, vmailmgr, admin, uidNumber, domain/username
|
||||
* @property-read string $acc_domain domain name
|
||||
* @property-read boolean $acc_imap_administration enable administration
|
||||
* @property-read string $acc_imap_admin_username
|
||||
|
@ -336,6 +336,10 @@ class Credentials
|
||||
$username = 'u'.$GLOBALS['egw_info']['user']['account_id'].'@'.$data['acc_domain'];
|
||||
break;
|
||||
|
||||
case 'domain/username':
|
||||
$username = $data['acc_domain'].'/'.$GLOBALS['egw_info']['user']['account_lid'];
|
||||
break;
|
||||
|
||||
case 'admin':
|
||||
// data should have been stored in credentials table
|
||||
throw new Api\Exception\AssertionFailed('data[acc_imap_logintype]=admin and no stored username/password for data[acc_id]='.$data['acc_id'].'!');
|
||||
|
@ -47,7 +47,7 @@ use Horde_Imap_Client_Mailbox_List;
|
||||
* @property-read string $acc_folder_template template folder
|
||||
* @property-read string $acc_folder_junk junk/spam folder
|
||||
* @property-read string $acc_imap_type imap class to use, default Imap
|
||||
* @property-read string $acc_imap_logintype how to construct login-name standard, vmailmgr, admin, uidNumber
|
||||
* @property-read string $acc_imap_logintype how to construct login-name standard, vmailmgr, admin, uidNumber, domain/username
|
||||
* @property-read string $acc_domain domain name
|
||||
* @property-read boolean $acc_imap_administration enable administration
|
||||
* @property-read string $acc_imap_admin_username
|
||||
@ -67,7 +67,7 @@ class Imap extends Horde_Imap_Client_Socket implements Imap\PushIface
|
||||
* @var array
|
||||
*/
|
||||
static public $default_params = array(
|
||||
//'debug' => '/tmp/imap.log', // uncomment to log communication with IMAP server
|
||||
'debug' => '/var/lib/egroupware/imap.log', // uncomment to log communication with IMAP server
|
||||
//'debug_literal' => true, // uncomment to log mail contents returned by IMAP server
|
||||
'cache' => true, // default caching via Cache / Api\Cache
|
||||
);
|
||||
@ -100,7 +100,7 @@ class Imap extends Horde_Imap_Client_Socket implements Imap\PushIface
|
||||
protected $mbAvailable;
|
||||
|
||||
/**
|
||||
* Login type: 'uid', 'vmailmgr', 'uidNumber', 'email'
|
||||
* Login type: 'uid', 'vmailmgr', 'uidNumber', 'email', 'domain/username'
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
@ -1164,6 +1164,10 @@ class Imap extends Horde_Imap_Client_Socket implements Imap\PushIface
|
||||
$_username = 'u'.$accountID;
|
||||
break;
|
||||
|
||||
case 'domain/username':
|
||||
$_username = $this->acc_domain.'/'.$_username;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (empty($this->loginType))
|
||||
{
|
||||
|
@ -229,7 +229,7 @@ class Smtp
|
||||
*
|
||||
* @param int|array $account account_id or whole account array with values for keys
|
||||
* @param string $domain=null domain, default use $this->defaultDomain
|
||||
* @param string $mail_login_type=null standard(uid), vmailmgr(uid@domain), email or uidNumber,
|
||||
* @param string $mail_login_type=null standard(uid), vmailmgr(uid@domain), email, uidNumber or domain/username,
|
||||
* default use $this->loginType
|
||||
* @return string
|
||||
*/
|
||||
@ -245,7 +245,7 @@ class Smtp
|
||||
*
|
||||
* @param int|array $account account_id or whole account array with values for keys
|
||||
* @param string $domain|null domain
|
||||
* @param string $mail_login_type=null standard(uid), vmailmgr(uid@domain), email or uidNumber
|
||||
* @param string $mail_login_type=null standard(uid), vmailmgr(uid@domain), email, uidNumber or domain/username
|
||||
* @return string|null null if no domain given but required by $mail_login_type
|
||||
*/
|
||||
static public function mailbox_address($account, string $domain=null, string $mail_login_type=null)
|
||||
@ -266,6 +266,10 @@ class Smtp
|
||||
$mbox = is_array($account) ? $account['account_lid'] : $GLOBALS['egw']->accounts->id2name($account);
|
||||
break;
|
||||
|
||||
case 'domain/username':
|
||||
$mbox = $domain.'/'.(is_array($account) ? $account['account_lid'] : $GLOBALS['egw']->accounts->id2name($account));
|
||||
break;
|
||||
|
||||
case 'vmailmgr':
|
||||
default:
|
||||
if (empty($domain)) return null;
|
||||
|
Loading…
Reference in New Issue
Block a user