2002-11-15 08:42:40 +00:00
|
|
|
<?PHP // $Id$
|
2002-11-16 03:49:32 +00:00
|
|
|
// Authentication by looking up an IMAP server
|
2002-11-15 08:42:40 +00:00
|
|
|
|
|
|
|
function auth_user_login ($username, $password) {
|
|
|
|
// Returns true if the username and password work
|
|
|
|
// and false if they are wrong or don't exist.
|
|
|
|
|
|
|
|
global $CFG;
|
|
|
|
|
2004-01-16 09:17:20 +00:00
|
|
|
$hosts = split(';', $CFG->auth_imaphost); // Could be multiple hosts
|
|
|
|
|
|
|
|
foreach ($hosts as $host) { // Try each host in turn
|
|
|
|
|
|
|
|
$host = trim($host);
|
|
|
|
|
|
|
|
switch ($CFG->auth_imaptype) {
|
|
|
|
case "imapssl":
|
|
|
|
$host = '{'.$host.":$CFG->auth_imapport/imap/ssl}";
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "imapcert":
|
|
|
|
$host = '{'.$host.":$CFG->auth_imapport/imap/ssl/novalidate-cert}";
|
|
|
|
break;
|
|
|
|
|
|
|
|
case "imaptls":
|
|
|
|
$host = '{'.$host.":$CFG->auth_imapport/imap/notls}";
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
$host = '{'.$host.":$CFG->auth_imapport}";
|
|
|
|
}
|
|
|
|
|
|
|
|
error_reporting(0);
|
|
|
|
$connection = imap_open($host, $username, $password, OP_HALFOPEN);
|
|
|
|
error_reporting($CFG->debug);
|
|
|
|
|
|
|
|
if ($connection) {
|
|
|
|
imap_close($connection);
|
|
|
|
return true;
|
|
|
|
}
|
2002-11-15 08:42:40 +00:00
|
|
|
}
|
|
|
|
|
2004-01-16 09:17:20 +00:00
|
|
|
return false; // No match
|
2002-11-15 08:42:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
?>
|