Настраиваю почтовик в связке postfix+dovecot+mysql, много проблем, с некоторыми разобрались в этом треде (большое спасибо gh0stwizard.
Теперь же у меня возникла беда с dovecot.
После попытки отправки тестового письма mailx admin@amet13.name, смотрю логи /var/log/mail.log:
Oct 3 18:25:20 debian postfix/pickup[25958]: 475C33E09E6: uid=0 from=<root>
Oct 3 18:25:20 debian postfix/cleanup[26248]: 475C33E09E6: message-id=<20131003152520.475C33E09E6@amet13.name>
Oct 3 18:25:20 debian postfix/qmgr[24951]: 475C33E09E6: from=<root@name>, size=406, nrcpt=1 (queue active)
Oct 3 18:25:20 debian dovecot: auth: passwd(admin@amet13.name): unknown user
Oct 3 18:25:20 debian dovecot: auth-worker(26255): mysql(127.0.0.1): Connected to database mail
Oct 3 18:25:20 debian dovecot: auth-worker(26255): Warning: mysql: Query failed, retrying: Unknown column 'home' in 'field list'
Oct 3 18:25:20 debian dovecot: auth-worker(26255): Error: sql(admin@amet13.name): User query failed: Unknown column 'home' in 'field list' (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = '%n' AND domain = '%d')
Oct 3 18:25:20 debian dovecot: lda: Error: user admin@amet13.name: Auth USER lookup failed
Oct 3 18:25:20 debian dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
Oct 3 18:25:20 debian postfix/pipe[26253]: 475C33E09E6: to=<admin@amet13.name>, relay=dovecot, delay=0.39, delays=0.19/0.01/0/0.19, dsn=4.3.0, status=deferred (temporary failure)
Не понимаю что значит это (я так понимаю ошибка именно в этом):
Oct 3 18:25:20 debian dovecot: auth-worker(26255): Error: sql(admin@amet13.name): User query failed: Unknown column 'home' in 'field list' (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = '%n' AND domain = '%d')
Создавал базы так:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'ваш_пароль';
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost,localdomain' IDENTIFIED BY 'ваш_пароль';
mysql> FLUSH PRIVILEGES;
Создадим таблицу, в которой будут храниться все почтовые домены:
mysql> CREATE TABLE domains ( domain varchar(50) NOT NULL, PRIMARY KEY (domain) );
Таблица пересылки почты:
mysql> CREATE TABLE forwardings ( source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) );
Таблица хранения почтовых аккаунтов:
mysql> CREATE TABLE users ( email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );
Таблица транспортировки:
mysql> CREATE TABLE transport ( domain varchar(128) NOT NULL default ", transport varchar(128) NOT NULL default ", UNIQUE KEY domain (domain) );
Запрос в /etc/dovecot/dovecot-sql.conf.ext:
password_query = SELECT email AS user, password FROM users WHERE email = '%u';
Куда копать, может еще какие логи смотреть? Может что-то переделать?