Страница 1 из 1

postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-09 10:21:38
GHopper
Здравствуйте!

FreeBSD 7.2
Настраиваю почтовый сервер на базе Postfix + courer-imap + mysql. Вот по этой портянке: http://www.sys-adm.org.ua/mail/mail-howto-p1.php Пытаюсь получить почту:

Код: Выделить всё

[root@mailer /usr/local/etc/authlib]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user ghopper@mailer.test.ru
+OK Password required.
pass password
-ERR Temporary problem, please try again later
Connection closed by foreign host.
При этом в лог пишется:

Код: Выделить всё

Jul  9 14:34:58 mailer courier-imap: Connection, ip=[127.0.0.1]
Jul  9 14:35:00 mailer /usr/sbin/cron[6910]: (root) CMD (/usr/libexec/atrun)
Jul  9 14:35:07 mailer authdaemond: received auth request, service=pop3, authtype=login
Jul  9 14:35:07 mailer authdaemond: authmysql: trying this module
Jul  9 14:35:07 mailer authdaemond: authmysqllib: connected. Versions: header 50083, client 50083, server 50083
Jul  9 14:35:07 mailer authdaemond: Install of a character set for MySQL: utf8
Jul  9 14:35:07 mailer authdaemond: SQL query: SELECT username, crypt, password, 1981, 1981, home, maildir, quota, name, auxoptions FROM mailbox WHERE username = 'ghopper@mail.test.ru'  AND (active='1')
Jul  9 14:35:07 mailer authdaemond: mysql_query failed, reconnecting: Unknown column 'crypt' in 'field list'
Jul  9 14:35:07 mailer authdaemond: authmysqllib: connected. Versions: header 50083, client 50083, server 50083
Jul  9 14:35:07 mailer authdaemond: Install of a character set for MySQL: utf8
Jul  9 14:35:07 mailer authdaemond: mysql_query failed second time, giving up: Unknown column 'crypt' in 'field list'
Jul  9 14:35:07 mailer authdaemond: authmysql: TEMPFAIL - no more modules will be tried
Jul  9 14:35:07 mailer courier-imap: LOGIN FAILED, user=ghopper@mailer.test.ru, ip=[127.0.0.1]
Jul  9 14:35:07 mailer courier-imap: authentication error: Input/output error
courer-authlib ищет в БД поля username, crypt, password, 1981, 1981, home, maildir, quota, name, auxoptions, половины из которых там нет. Структура БД создавалась через postfixadmin.

Код: Выделить всё

[root@mailer /usr/local/etc/authlib]# cat authmysqlrc | grep -v ^# | grep -v ^$
MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          postfix
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_PORT              0
MYSQL_OPT               0
MYSQL_DATABASE          postfix
MYSQL_CHARACTER_SET utf8
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     crypt
MYSQL_CLEAR_PWFIELD     password
MYSQL_UID_FIELD         1981
MYSQL_GID_FIELD         1981
MYSQL_LOGIN_FIELD       username
MYSQL_HOME_FIELD        home
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_AUXOPTIONS_FIELD  auxoptions
MYSQL_WHERE_CLAUSE      active='1'
Как быть?

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-09 15:42:23
skeletor
Пароль в каком виде вводите? Нужно вводить не сам пароль, а его хэш!

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-09 16:18:11
terminus
фотоп

почему в последнее время все пишут в FreeBSD о проблемах про которые надо писать в MTA?

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-09 19:28:07
GHopper
skeletor писал(а):Пароль в каком виде вводите? Нужно вводить не сам пароль, а его хэш!
да какая разница какой пароль. У меня sql-запрос формируется неправильный. Таких полей в БД нету, которые запрашиваются в запросе...

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-10 11:09:28
skeletor
Ну значит напишите правильный запрос.

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-10 11:38:42
GHopper
не подскажете куда его писать?

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-10 11:54:09
skeletor
Если создавали через postfixadmin, то у вас в конфиге authmysqlrc ошибка! Дело в том, что postfixadmin не сохраняет в базе чистый пароль, только его хешь и хранит его в поле password, а не crypt. Да и поля crypt он не создаёт. Поэтому, вместо параметров

Код: Выделить всё

MYSQL_CRYPT_PWFIELD     crypt
MYSQL_CLEAR_PWFIELD     password
нужно использовать такой

Код: Выделить всё

MYSQL_CRYPT_PWFIELD    password
Если хотите, что бы в базе писался ещё и пароль в чистом виде - нужно править php-код в postfixadmin. Как я это делал (смотри пункт 2)

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-10 13:45:34
GHopper
skeletor писал(а):Если создавали через postfixadmin, то у вас в конфиге authmysqlrc ошибка! Дело в том, что postfixadmin не сохраняет в базе чистый пароль, только его хешь и хранит его в поле password, а не crypt. Да и поля crypt он не создаёт. Поэтому, вместо параметров

Код: Выделить всё

MYSQL_CRYPT_PWFIELD     crypt
MYSQL_CLEAR_PWFIELD     password
нужно использовать такой

Код: Выделить всё

MYSQL_CRYPT_PWFIELD    password
Если хотите, что бы в базе писался ещё и пароль в чистом виде - нужно править php-код в postfixadmin. Как я это делал (смотри пункт 2)
Ага, сам только что до этого додумался )) Спасибо за дельный совет.
Теперь такая ситуевина:

Код: Выделить всё

[root@mailer /usr/local/etc/authlib]# cat authmysqlrc | grep -v ^# | grep -v ^$
MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          postfix
MYSQL_SOCKET            /tmp/mysql.sock
MYSQL_PORT              0
MYSQL_OPT               0
MYSQL_DATABASE          postfix
MYSQL_CHARACTER_SET utf8
MYSQL_USER_TABLE        mailbox
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         1981
MYSQL_GID_FIELD         1981
MYSQL_LOGIN_FIELD       username
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD     maildir
MYSQL_QUOTA_FIELD       quota
MYSQL_WHERE_CLAUSE      active='1'
В логе:

Код: Выделить всё

Jul 10 18:03:39 mailer courier-imap: Connection, ip=[127.0.0.1]
Jul 10 18:03:47 mailer authdaemond: received auth request, service=pop3, authtype=login
Jul 10 18:03:47 mailer authdaemond: authmysql: trying this module
Jul 10 18:03:47 mailer authdaemond: authmysqllib: connected. Versions: header 50083, client 50083, server 50083
Jul 10 18:03:47 mailer authdaemond: Install of a character set for MySQL: utf8
Jul 10 18:03:47 mailer authdaemond: SQL query: SELECT username, password, "", 1981, 1981, home, maildir, quota, name, "" FROM mailbox WHERE username = 'ghopper@mailer.hutor.ru'  AND (active='1')
Jul 10 18:03:47 mailer authdaemond: mysql_query failed, reconnecting: Unknown column 'home' in 'field list'
Jul 10 18:03:47 mailer authdaemond: authmysqllib: connected. Versions: header 50083, client 50083, server 50083
Jul 10 18:03:47 mailer authdaemond: Install of a character set for MySQL: utf8
Jul 10 18:03:47 mailer authdaemond: mysql_query failed second time, giving up: Unknown column 'home' in 'field list'
Jul 10 18:03:47 mailer authdaemond: authmysql: TEMPFAIL - no more modules will be tried
Jul 10 18:03:47 mailer courier-imap: LOGIN FAILED, user=ghopper@mailer.hutor.ru, ip=[127.0.0.1]
Jul 10 18:03:47 mailer courier-imap: authentication error: Input/output error
Jul 10 18:04:30 mailer courier-imap: Connection, ip=[127.0.0.1]
Jul 10 18:04:43 mailer courier-imap: LOGOUT, ip=[127.0.0.1]
Jul 10 18:04:43 mailer courier-imap: Disconnected, ip=[127.0.0.1]
Что еще за home?

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-10 14:11:23
skeletor
Вот она какая:

Код: Выделить всё

MYSQL_HOME_FIELD        '/var/spool/mail'
измени на свой путь, если у тебя другой.

Re: postfixadmin создал базу, которая не совместима с courer-ima

Добавлено: 2009-07-10 14:18:31
GHopper
Урааа ;) Заработало!