Собрал Exim+MySQL+Courier-Imap+DSPAM+SquirrelMail+ClamAV
Почта успешно доставляется на сервер, но при попытке получения в логе maillog:
Jun 16 13:05:27 router pop3d: LOGIN FAILED, user=user@domain.ru, ip=[192.168.0.25]
Jun 16 13:05:27 router pop3d: authentication error: Input/output error
>Собрал Exim+MySQL+Courier-Imap+DSPAM+SquirrelMail+ClamAV
>Почта успешно доставляется на сервер, но при попытке получения в логе maillog:
>
>Jun 16 13:05:27 router pop3d: LOGIN FAILED, user=user@domain.ru, ip=[192.168.0.25]
>Jun 16 13:05:27 router pop3d: authentication error: Input/output errorНе может подцепиться к базе или есть обращения к не существующим таблицам, либо полям.
>>Собрал Exim+MySQL+Courier-Imap+DSPAM+SquirrelMail+ClamAV
>>Почта успешно доставляется на сервер, но при попытке получения в логе maillog:
>>
>>Jun 16 13:05:27 router pop3d: LOGIN FAILED, user=user@domain.ru, ip=[192.168.0.25]
>>Jun 16 13:05:27 router pop3d: authentication error: Input/output error
>
>Не может подцепиться к базе или есть обращения к не существующим таблицам,
>либо полям.Да нет. вот кусок лога mysql:
5 Connect exim@localhost on dspam
5 Query select uid from dspam_virtual_uids where username = 'user@shevkunov.spb.ru'
5 Query select uid, spam_learned, innocent_learned, spam_misclassified, innocent_misclassified, spam_corpusfed, innocent_corpusfed
5 Quit
Тем более под тем же пользователем exim@localhost происходит подключение и при доставке почты - в этом случае все нормально.
>>>Собрал Exim+MySQL+Courier-Imap+DSPAM+SquirrelMail+ClamAV
>>>Почта успешно доставляется на сервер, но при попытке получения в логе maillog:
>>>
>>>Jun 16 13:05:27 router pop3d: LOGIN FAILED, user=user@domain.ru, ip=[192.168.0.25]
>>>Jun 16 13:05:27 router pop3d: authentication error: Input/output error
>>
>>Не может подцепиться к базе или есть обращения к не существующим таблицам,
>>либо полям.
>
>Да нет. вот кусок лога mysql:
>5 Connect exim@localhost on dspam
>5 Query select uid from dspam_virtual_uids
>where username = 'user@shevkunov.spb.ru'
>5 Query select uid, spam_learned, innocent_learned,
>spam_misclassified, innocent_misclassified, spam_corpusfed, innocent_corpusfed
>5 Quit
>Тем более под тем же пользователем exim@localhost происходит подключение и при доставке
>почты - в этом случае все нормально.А зачем он добавляет к имени пользователя доменное имя? Может имеет смысл закоментировать строку DEFAULT_DOMAIN в authmysqlrc
>>>>Собрал Exim+MySQL+Courier-Imap+DSPAM+SquirrelMail+ClamAV
>>>>Почта успешно доставляется на сервер, но при попытке получения в логе maillog:
>>>>
>>>>Jun 16 13:05:27 router pop3d: LOGIN FAILED, user=user@domain.ru, ip=[192.168.0.25]
>>>>Jun 16 13:05:27 router pop3d: authentication error: Input/output error
>>>
>>>Не может подцепиться к базе или есть обращения к не существующим таблицам,
>>>либо полям.
>>
>>Да нет. вот кусок лога mysql:
>>5 Connect exim@localhost on dspam
>>5 Query select uid from dspam_virtual_uids
>>where username = 'user@shevkunov.spb.ru'
>>5 Query select uid, spam_learned, innocent_learned,
>>spam_misclassified, innocent_misclassified, spam_corpusfed, innocent_corpusfed
>>5 Quit
>>Тем более под тем же пользователем exim@localhost происходит подключение и при доставке
>>почты - в этом случае все нормально.
>
>А зачем он добавляет к имени пользователя доменное имя? Может имеет смысл
>закоментировать строку DEFAULT_DOMAIN в authmysqlrcВопервых такой строки в authmysqlrc у меня не присутствует, а вовторых какже не добавлять к имени пользователя имя домена? =/ Их же (доменов) несколько.
>>>>>Собрал Exim+MySQL+Courier-Imap+DSPAM+SquirrelMail+ClamAV
>>>>>Почта успешно доставляется на сервер, но при попытке получения в логе maillog:
>>>>>
>>>>>Jun 16 13:05:27 router pop3d: LOGIN FAILED, user=user@domain.ru, ip=[192.168.0.25]
>>>>>Jun 16 13:05:27 router pop3d: authentication error: Input/output error
>>>>
>>>>Не может подцепиться к базе или есть обращения к не существующим таблицам,
>>>>либо полям.
>>>
>>>Да нет. вот кусок лога mysql:
>>>5 Connect exim@localhost on dspam
>>>5 Query select uid from dspam_virtual_uids
>>>where username = 'user@shevkunov.spb.ru'
>>>5 Query select uid, spam_learned, innocent_learned,
>>>spam_misclassified, innocent_misclassified, spam_corpusfed, innocent_corpusfed
>>>5 Quit
>>>Тем более под тем же пользователем exim@localhost происходит подключение и при доставке
>>>почты - в этом случае все нормально.
>>
>>А зачем он добавляет к имени пользователя доменное имя? Может имеет смысл
>>закоментировать строку DEFAULT_DOMAIN в authmysqlrc
>
>Вопервых такой строки в authmysqlrc у меня не присутствует, а вовторых какже
>не добавлять к имени пользователя имя домена? =/ Их же (доменов)
>несколько.В MySQL поле usernsme тоже с доменом?
>В MySQL поле usernsme тоже с доменом?
Нет там другая структура:
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 'domain.com',
`shell` varchar(32) character set cp1251 collate cp1251_bin default '/sbin/nologin',
`home` varchar(128) character set cp1251 collate cp1251_bin default '/usr/local/vmail/domain.com',
`quota` tinyint(4) default '30',
`active` enum('Y','N') default 'Y',
PRIMARY KEY (`id`,`mbox_host`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
>
>>В MySQL поле usernsme тоже с доменом?
>Нет там другая структура:
>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 'domain.com',
>`shell` varchar(32) character set cp1251 collate cp1251_bin default '/sbin/nologin',
>`home` varchar(128) character set cp1251 collate cp1251_bin default '/usr/local/vmail/domain.com',
>`quota` tinyint(4) default '30',
>`active` enum('Y','N') default 'Y',
>PRIMARY KEY (`id`,`mbox_host`)
>) ENGINE=MyISAM DEFAULT CHARSET=cp1251;Ну вот и исправльте это:
SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
на этоSELECT id, crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
>Ну вот и исправльте это:
>SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, ""
>FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
>на это
>SELECT id, crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, ""
>FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'К сожалению ошибка та же. Проблема нре решилась таким образом.
>>Ну вот и исправльте это:
>>SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, ""
>>FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
>>на это
>>SELECT id, crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, ""
>>FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
>
>К сожалению ошибка та же. Проблема нре решилась таким образом.
Ну так вы проверьте свой запрос на правильность.
>
>>В MySQL поле usernsme тоже с доменом?
>Нет там другая структура:
>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 'domain.com',
>`shell` varchar(32) character set cp1251 collate cp1251_bin default '/sbin/nologin',
>`home` varchar(128) character set cp1251 collate cp1251_bin default '/usr/local/vmail/domain.com',
>`quota` tinyint(4) default '30',
>`active` enum('Y','N') default 'Y',
>PRIMARY KEY (`id`,`mbox_host`)
>) ENGINE=MyISAM DEFAULT CHARSET=cp1251;Как я понял по структуре, в поле ID имя пользователя выглядит так:
user@domailn.ru.
Если нет, то проблема именно в этом поле.
>Как я понял по структуре, в поле ID имя пользователя выглядит так:
>
>user@domailn.ru.
>Если нет, то проблема именно в этом поле.mysql> select id, mbox_host from users;
+-------+------------------+
| id | mbox_host |
+-------+------------------+
| exim | domain.ru |
| serge | domain.ru |
| user | domain.ru |
+-------+------------------+
3 rows in set (0.00 sec)соответственно CONCAT(id,'@',mbox_host)
в запросе SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
возвращает полное имя пользователя
>Вопервых такой строки в authmysqlrc у меня не присутствует, а вовторых какже
>не добавлять к имени пользователя имя домена? =/ Их же (доменов)
>несколько.Уверен, что присутствует.
Кроме того, сделайте DEBUG=2, чтобы получить более полный лог запроса.
>Уверен, что присутствует.[root@router /usr/local/etc/authlib]# cat authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME exim
MYSQL_PASSWORD xxxxxxxxx
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE mail
MYSQL_SELECT_CLAUSE SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'Как видиите, не присутствует.
>Кроме того, сделайте DEBUG=2, чтобы получить более полный лог запроса.
[root@router /usr/local/etc/authlib]# cat authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authuserdb authvchkpw authpam authldap authmysql authpgsql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=2
DEFAULTOPTIONS="wbnodsn=1"
LOGGEROPTS=""DEBUG_LOGIN=2 - есть но более полный лог (в частности, незашифрованный пароль) не пишет
>Уверен, что присутствует.
[root@router /usr/local/etc/authlib]# cat authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME exim
MYSQL_PASSWORD xxxxxxxxx
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE mail
MYSQL_SELECT_CLAUSE SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
Как видите, все же отсутствует.>Кроме того, сделайте DEBUG=2, чтобы получить более полный лог запроса.
[root@router /usr/local/etc/authlib]# cat authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authuserdb authvchkpw authpam authldap authmysql authpgsql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=2
DEFAULTOPTIONS="wbnodsn=1"
LOGGEROPTS=""DEBUG_LOGIN=2 -- есть а подробности (например пароль в незакриптованном виде) в лог почему-то не пишет (((
MYSQL_SELECT_CLAUSE SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) = .'$(local_part)@$(domain).'
^ ^
а что у Вас за точки в запросе?
а использовать authlib без конкретизации запроса нельзя?
если нет, то запрос то надо упростить
SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home, CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE id = '$(local_part)' AND mbox_host= '$(domain)'
>MYSQL_SELECT_CLAUSE SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home,
>CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) =
>.'$(local_part)@$(domain).'
> ^
>
> ^
>а что у Вас за точки в запросе?Спасибо, уважаемый!
Проблема решина.
Все дело в неаккуратном копированни в терминалке:
Должно быть:
SELECT CONCAT(id,'@',mbox_host), crypt, "", 1002, 6, home,
CONCAT(home,'/Maildir'), "", id, "" FROM users WHERE CONCAT(id,'@', mbox_host) =
"$(local_part)@$(domain)"Еще раз всем спасибо за участие.