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


Администрирование операционных систем на базе Linux (Debian/Ubuntu и Centos/RedHat) Open Source компоненты почтового сервера
domain dovecot exim mailbox mta postfix pgsql postfix smtpd настройка postfix
 
 

* В этом блоге я описываю свою повседневную рабочую практику, поэтому все статьи в блоге написаны лично мной и при копировании их на свой сайт пожалуйста указывайте ссылку на страницу откуда вы скопировали.
* Если какая-то статья вам помогла, то вы можете дать мне немного денег вместо простого спасибо (ссылка на форму поддержки проекта внизу страницы), если вы что-то не поняли или у вас что-то не получается, то вы можете нанять меня и я вам все подробно расскажу (расценки и ссылки в конце статьи).


(последние правки 3 недели, 4 дня)

В предыдущей статье посвященной сборке и настройке почтового сервера из 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';

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

Моя официальная страница на FaceBook
Мой микроблог в твиттер

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

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

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


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

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

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


Как вы наверное понимаете, бесплатно сейчас работать никто не будет и если ответ на ваш вопрос потребует больше трех минут времени и вам требуется полноценная консультация, то расценки на мои услуги представленны ниже.


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

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