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";
}

?>