Простой почтовый хостинг с хранилищем писем в БД MySQL. Часть 2. Прикрут к Postfix.
- Подробности
- Просмотров: 3482
Настроив dbmail нужно обеспечить доставку почты в его БД. Для этого нужно правильно сконфигурировать MTA. Эта заметка о том как конфигурировать Postfix для доставки почты в dbmail. Прикручивается несложно, но нужно обязательно сначала установить Postfix, а потом уже приступать к прикручиванию.
Для начала нужно указать Postfix'у какие домены считать локальными, тоесть такими, для которых мы будем почту принимать. За это отвечает параметр mydestination в конфиге /etc/postfix/main.cf.
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Тут указано что-то вроде базового значения. Этот список нужно дополнить обслуживаемыми доменами. К примеру
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, adment.org.ua
Вся почта, которая подпадает под эти критерии считается локальной и доставляется в mailbox. Для возможности доставлять почту в dbmail нужно соответствующий транспорт. Открываем файл /etc/postfix/master.cf и добавляем в конец
dbmail-lmtpd unix - - n - - lmtp
Теперь почту можно доставлять как lmtp и транспорт получил имя dbmail-lmtpd. Перед тем как указывать нужный транспорт для mailbox нужно обьявить новые списки получателей для Postfix, тоесть нужно указать, что нужно доставлять почту именно тем юзерам, кто есть в БД dmail.
Для этого нужно чтобы Postfix был собран с поддержкой MySQL (чтобы был USE-флаг mysql). Кстати говоря предположение что Postfix должен быть собран с поддержкой базы, на которую посажен dbmail вполне верное. Нужно создать два файла: /etc/postfix/dbmail-recipients.cf
user = dbmail
password = пароль
hosts = localhost
dbname = dbmail
table = dbmail_users
select_field = userid
where_field = userid
и /etc/postfix/dbmail-aliases.cf
user = dbmail
password = пароль
hosts = localhost
dbname = dbmail
table = dbmail_aliases
select_field = alias
where_field = alias
Эти два файла кстати лучше все подряд не показывать, на Gentoo лучше установить для них группу postfix и права 640, таким образом видеть єти конфиги будут только root и postfix. Указываем ссылки на эти файлы в параметре local_recipient_maps конфига /etc/postfix/main.cf
local_recipient_maps = mysql:/etc/postfix/dbmail-aliases.cf mysql:/etc/postfix/dbmail-recipients.cf $alias_maps
Мы добавили $alias_maps, чтобы оставить возможность прикручивать алиасы для системных аккаунтов в конфигах. Далее указываем правильный транспорт для mailbox. Всё в том же конфиге /etc/postfix/main.cf правим параметр mailbox_transport:
mailbox_transport = dbmail-lmtpd:127.0.0.1:24
Мы указали на раннее обьявленный транспорт dbmail-lmtpd. Теперь остаётся правильно указать алиасы в системе, чтобы наш друг Postfix ничего не напутал.
Далее неполохо бы сделать какую-нибудь Web-морду.