Exim+mysql-не шарит
Добавлено: 2007-11-01 23:37:37
Здравствуйте всем! Проблема следующая. Ecть exim, пользователи хранятся в MySQL. Таблица с пользователями такая
Не работает smtp аутентификация. Используется метод cram-md5:
exim пишет что некорректный данные типа аутентификационные. После включения логов mysql выяснилось, что в запросе в этом mbox_host=''. Поэтому запрос ниче не возвращает. Я так понимаю, что строка '${quote_mysql:${domain:$auth1}}' должна вернуть доменную часть адреса отправителя. аутентификация работает, если логин пользователя в почтовом клиенте представить в виде имя пользователя@домен. но тогда почтовики такие письма не принимают, так как адрес отправителя у них виден как имя пользователя@домен@домен. Что делать? ) За одно, скажите плиз, что делает оператор qote_mysql, че то из доки не ясно полностью. И правильно ли я понимаю, что $auth1 - это полный адрес отправителя, а не только его local_part?
Заранее спасибо.
P.S. писал в аутентификаторе крам-мд5 всякие отладочные выражения и выяснил, что за $auth1 принимается только имя пользователя. поэтому выражение domain:$auth1 ничего не возвращает. Что делать???????
Код: Выделить всё
mysql> CREATE TABLE users ( -> id varchar(64) NOT NULL default '', -> crypt varchar(64) NOT NULL default '', -> passwd varchar(64) NOT NULL default '', -> uid int(10) unsigned default '8', -> gid int(10) unsigned default '12', -> mbox_host varchar(128) NOT NULL default 'example.ru', -> shell varchar(32) binary default '/sbin/nologin', -> home varchar(128) binary default '/home/vmail/domains', -> quota tinyint(4) default '15', -> active enum('Y','N') default 'Y', -> PRIMARY KEY (id,mbox_host));
Код: Выделить всё
auth_cram_md5: driver = cram_md5 public_name = CRAM-MD5 server_secret = ${lookup mysql{SELECT passwd FROM users \ WHERE id = '${qote_mysql:${local_part:$auth1}}' \ AND mbox_host = '${quote_mysql:${domain:$auth1}}' \ AND active = 'Y'}{$value}fail} server_set_id = $auth1
Заранее спасибо.
P.S. писал в аутентификаторе крам-мд5 всякие отладочные выражения и выяснил, что за $auth1 принимается только имя пользователя. поэтому выражение domain:$auth1 ничего не возвращает. Что делать???????