Обновление dovecot 1.1 до 1.2
Не было печали — обновлений накачали..(с)
Собственно, новая версия вышла уже давно, но неприятность обновления случилась только намедни. Неприятность заключается в изменении формата конфига.
Всё бы ничего, но вот этот момент
1 2 3 4 5 | Relative home directory paths are giving errors now. They were never supported, but earlier they just didn't usually cause problems. If you were using e.g. mail_location = maildir:/var/mail/%h, just change it to mail_location = maildir:%h and add /var/mail/ prefix to home dirs. |
очень не порадовал. Ну ничего, где наша не пропадала? Наша пропадала везде :) Решаем проблему таким образом:
В dovecot.conf строчку
1 | mail_location = maildir:/var/mail/exim/%d/%n |
меняем на
1 | mail_location = maildir:%d/%n |
Дальше идем в dovecot-sql.conf и меняем запрос к базе на извлечение инфы пользователя с
1 2 | user_query = SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` \ FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1' |
на
1 2 3 | user_query = SELECT concat('/var/mail/exim/', maildir) \ AS home, 'maildir:/var/mail/exim/%d/%n' AS mail, 26 AS uid, 26 AS gid FROM mailbox \ WHERE username = '%n@%d' AND active = '1' |
При необходимости можно аналогичным образом поменять запрос на получение пароля на
1 2 3 | password_query = SELECT username AS user, password, concat('/var/mail/exim/', maildir)\ AS userdb_home, 'maildir:/var/mail/exim/%u' AS userdb_mail, 150 AS userdb_uid, \ 150 AS userdb_gid FROM mailbox WHERE username = '%u' AND active = '1' |
Ну и остальные параметры конфигурации приводим в соответствие с изменениями.