Ftpauth.php
From Qmail Info Wiki
/usr/local/bin/ftpauth.php:
#!/usr/local/bin/php -q
<?php
$vpopmail_uid = 1009;
$vpopmail_gid = 1004;
$login = getenv(AUTHD_ACCOUNT);
$link = mysql_connect('localhost', 'ftpauth', 'changeme')
or die('Could not connect: ' . mysql_error());
mysql_select_db('vpopmail') or die('Could not select database');
$email_address = explode("@", $login);
$domain = explode(".", $email_address[1]);
foreach($domain as $key => $value) {
if ($key != 0) $table_name .= "_";
$table_name .= $value;
}
$query = 'SELECT pw_name, pw_passwd, pw_dir FROM ' . $table_name . ' WHERE pw_name = "' . $email_address[0] . '"';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$row = mysql_fetch_row($result);
$get_salt = explode("$", $row[1]);
$salt = "$1$" . $get_salt[2] . "$";
$password = crypt(getenv(AUTHD_PASSWORD),$salt);
if ($password == $row[1]) {
echo "auth_ok:1\n";
echo "uid:" . $vpopmail_uid . "\n";
echo "gid:" . $vpopmail_gid . "\n";
echo "dir:" . $row[2] . "/./\n";
echo "end\n";
}
else {
echo "auth_ok:0\n";
echo "end\n";
}
?>

