modcache.sh: Support imap connections with tls/ssl

This commit is contained in:
Aleksander Machniak 2021-09-16 09:34:42 +02:00
parent d3a6a40c25
commit 5f11d68ee7

View file

@ -210,9 +210,22 @@ function authenticate(&$opts)
else if (empty($opts['user']))
$opts['user'] = $opts['username'];
// parse $host URL
$url = parse_url(trim($opts['host']));
if (!empty($url['host'])) {
$imap_host = $url['host'];
$imap_ssl = isset($url['scheme']) && in_array($url['scheme'], array('ssl','imaps','tls')) ? $url['scheme'] : false;
$imap_port = isset($url['port']) ? $url['port'] : ($imap_ssl && $imap_ssl != 'tls' ? 993 : 143);
}
else {
$imap_host = trim($opts['host']);
$imap_port = 143;
$imap_ssl = false;
}
// let the kolab_auth plugin do its magic
$auth = $rcmail->plugins->exec_hook('authenticate', array(
'host' => trim($opts['host']),
'host' => $imap_host,
'user' => trim($opts['user']),
'pass' => $opts['password'],
'cookiecheck' => false,
@ -221,7 +234,7 @@ function authenticate(&$opts)
if ($auth['valid']) {
$storage = $rcmail->get_storage();
if ($storage->connect($auth['host'], $auth['user'], $auth['pass'], 143, false)) {
if ($storage->connect($imap_host, $auth['user'], $auth['pass'], $imap_port, $imap_ssl)) {
if ($opts['verbose'])
echo "IMAP login succeeded.\n";
if (($user = rcube_user::query($opts['username'], $auth['host'])) && $user->ID)