Настройка MTA Postfix в связке с Dovecot

by Anton Chernousov aka GITA-DEV


Опубликовано: 01 Авг 2018 (последние правки 1 месяц, 3 недели)


Настройка MTA Postfix в связке с Dovecot

В предыдущей статье посвященной сборке и настройке почтового сервера из Opensource-компонентов, я в качестве MTA использовал EXIM и как мне сказали я это сделал зря, так как наиболее распространенным почтовым сервером на данный момент является Postfix и он применяется на 90% почтовых серверов. Пожалуй прислушаюсь к советам читателей и расскажу в дополнение к предыдущей статье как настроить Postfix для той же связки.

Настройка Dovecot

Для работы такого рода связки потребуется установить lmtp-модуль для Dovecot:

# aptitude install dovecot-lmtpd

И внести некоторые изменения в рассмотренную ранее конфигурацию Dovecot.

В файле 10-director.conf требуется добавить postmaster_address и mail_plugins:

protocol lmtp { 
 postmaster_address = reports@gita-dev.ru  # required 
 mail_plugins = quota sieve 
}

В файле 10-master.conf:

 service lmtp { 
  unix_listener /var/spool/postfix/private/dovecot-lmtp { 
   mode = 0666 
   group = postfix 
   user = postfix 
}

Настройка Postfix

Устанавливаем версию Postfix которая может работать в связке с базой данных Postgresql:

# aptitude install postfix-pgsql postfix

Конфигурация postfic main.cf получилась следующая:

relay_domains = 
virtual_alias_maps = proxy:pgsql:/etc/postfix/virtual_alias_maps.cf 
virtual_mailbox_domains = proxy:pgsql:/etc/postfix/virtual_mailbox_domains.cf 
virtual_mailbox_maps = proxy:pgsql:/etc/postfix/virtual_mailbox_maps.cf 
virtual_transport = lmtp:unix:private/dovecot-lmtp 
virtual_mailbox_limit = 512000000 
virtual_minimum_uid = 114 
virtual_uid_maps = static:114 
virtual_gid_maps = static:119 
local_transport = virtual 
local_recipient_maps = $virtual_mailbox_maps 
transport_maps = hash:/etc/postfix/transport 
smtpd_sasl_auth_enable = yes 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination 
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options 
smtpd_tls_auth_only = yes 
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.gita-dev.ru/fullchain.pem 
smtpd_tls_key_file = /etc/letsencrypt/live/mail.gita-dev.ru/privkey.pem 
smtpd_sasl_local_domain = $mydomain 
broken_sasl_auth_clients = yes 
smtpd_tls_loglevel = 1 
html_directory = /usr/share/doc/postfix/html 
queue_directory = /var/spool/postfix 
mydestination = localhost

И соответственно запросы виртуальных алиасов.

Файл /etc/postfix/virtual_alias_maps.cf:

user = web_portal 
password = password
hosts = localhost 
dbname = web_portal_db 
query = SELECT login || '@' ||domain AS goto FROM core_mailaccount INNER JOIN core_maildomains ON (core_mailaccount.domain_id = core_maildomains.id) WHERE login || '@' || domain='%s';

Файл /etc/postfix/virtual_mailbox_domains.cf:

user = web_portal 
password = password
hosts = localhost 
dbname = web_portal_db 
query = SELECT domain FROM public.core_maildomains WHERE domain='%s'

Файл /etc/postfix/virtual_mailbox_maps.cf:

user = web_portal 
password = password 
hosts = localhost 
dbname = web_portal_db 
query = SELECT login || '@' ||domain AS maildir FROM core_mailaccount INNER JOIN core_maildomains ON (core_mailaccount.domain_id = core_maildomains.id) WHERE login || '@' || domain='%s';

Как вы видите ничего сложного нет.


Обратите внимание на статьи:


Настройка шифрования трафика протоколов SMTP и IMAP сертификатами let's Encrypt (EXIM+Dovecot)

Настройка шифрования трафика протоколов SMTP и IMAP сертификатами let's Encrypt (EXIM+Dovecot)

Как я уже говорил, я продолжу настраивать тестовый почтовый сервер на базе Dovecot+Exim и сегодня мы настроим шифрование трафика SMTP и IMAP валидными сертификатами Let's encrypt.


Легковесный почтовый сервер с хранением учетных данных в базе Postgresql

Легковесный почтовый сервер с хранением учетных данных в базе Postgresql

До этого я рассказывал исключительно о монстроидальном комплексе совместной работы под названием Zimbra и вы наверное поняли, что запустить его на небольшом VPS у вас не получится, так как он потребляет просто огромное количество системных ресурсов. Но, что же делать, если требуется собственный почтовый сервер и вы сильно ограничены в системных ресурсах? Правильный ответ, это собрать его самому из Opensource-компонентов и полученный результат удивит вас своей легковесностью.


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.