аутентификатор auth_mysql.pl Вот его начало:
package openwebmail::auth_mysql; use strict; # # auth_mysql.pl - authenticate user with DBD::MySQL # # 2002/03/07 Alan Sung - AlanSung@dragon2.net # # здесь настройки как и в authmysqlrc (по моему-так) my $SQLHost = "localhost"; # INSERT THE MYSQL SERVER IP HERE. my $sqlusr = "123456man"; # INSERT THE MYSQL USER HERE. my $sqlpwd = "654321"; # INSERT THE MYSQL PASSWORD HERE.
my $auth_db = "mail"; my $auth_table = "aliases"; my $field_username = "alias"; my $field_password = "password"; my $field_realname = "alias"; my $field_uid = "id"; my $field_gid = "gid"; my $field_home = "maildir";
my $pass_type = "cleartxt"; # # 0 : ok # -2 : parameter format error # -3 : authentication system/internal error # -4 : user doesn't exist
sub get_userinfo { my ($r_config, $user)=@_; return(-2, 'User is null') if (!$user); # if ( $user =~ /^(.*)\@(.*)$/ ) { ($user, $dom) = ($1, $2); } my $dbh = DBI->connect("dbi:mysql:$auth_db;host=$SQLHost", $sqlusr,$sqlpwd) or return(-3, "Cannot connect to db server: ".$DBI::errstr); my $queryStr =qq|select $field_uid, $field_gid, $field_realname, $field_home from $auth_table where strcmp($field_username , '$user')=0|; # По идее я ввожу login состоящий из ящика т бишь ivanov@domen # если 2 строчки выше вставить вместо ($field_username , '$user')=0|; # как ($field_username , '$user\@$domen')=0|; # а в домен как глоб ячейку до этого вставить # my $domain = "domen.ru"; # работает хорошо но для одного домена а у клиентов есть еще 2.domen.ru и т далее # есть еще строчка if ( $user =~ /^(.*)\@(.*)$/ ) { ($user, $domen) = ($1, # $2); } но пока закоментирована Реально ли этой строкой # из логина выбрать домен и подставить в $domen 7 строчками выше и избавиться от обьявления. # или как Прошу Откликнуться срочно а то ремонт начнется и все по--ерится.