Отредактируем файл конфигурации Dovecot – /usr/local/etc/dovecot/dovecot.conf:
cat /usr/local/etc/dovecot/dovecot.conf | grep -v '^#' | sed '/^$/d' | more # После отладки отключить дебаги!!! auth_debug = yes auth_debug_passwords = yes auth_mechanisms = plain login cram-md5 auth_socket_path = /var/run/dovecot/auth-userdb auth_verbose = yes auth_verbose_passwords = yes base_dir = /var/run/dovecot/ disable_plaintext_auth = no listen = * log_path = /var/log/dovecot.log login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c login_trusted_networks = 127.0.0.0/8, 192.168.1.0/24 mail_debug = yes mail_location = maildir:~/Maildir protocols = imap pop3 namespace inbox { inbox = yes # list = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / subscriptions = yes type = private } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } #### service auth { unix_listener auth-userdb { group = postfix mode = 0666 user = postfix } user = dovecot } service imap-login { inet_listener imap { port = 143 } } service imap { process_limit = 1024 } service pop3-login { inet_listener pop3 { port = 110 } } service pop3 { process_limit = 1024 } ssl = no userdb { driver = passwd } verbose_proctitle = yes verbose_ssl = yes protocol lmtp { mail_plugins = } protocol imap { mail_max_userip_connections = 10 mail_plugins = } protocol pop3 { mail_max_userip_connections = 10 mail_plugins = }
Редактируем файл конфигурации работы с MySQL – /usr/local/etc/dovecot/dovecot-sql.conf.ext. ВАЖНО: параметр query может меняться в зависимости от версии сервера, в описываемом примере используется dovecot2:
# cat /usr/local/etc/dovecot/dovecot-sql.conf.ext | grep -v '^#' | sed '/^$/d' | more # Database driver: mysql, pgsql, sqlite driver = mysql connect = host=localhost dbname=postfix user=postfix password=mypassword default_pass_scheme = MD5-CRYPT # Запрос, возвращающий пароль password_query = SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1' # Запрос, возвращающий инфу о юзере и проверяющий квоту user_query = SELECT CONCAT('/var/vmail/', `maildir`) AS \ `home`, 65534 AS `uid`, 65534 AS `gid`, concat('dict:storage=', \ CAST(ROUND(quota / 1024) AS CHAR), '::proxy::sqlquota') \ AS quota, CONCAT('*:storage=', CAST(quota AS CHAR), 'B') AS quota_rule \ FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1' # Query to get a list of all usernames. iterate_query = SELECT username AS user FROM mailbox
Добавляем пользователя dovecot в группу mail
cat /etc/group | grep mail mail:*:6:postfix,dovecot
Далее
chown dovecot:mail /var/log/dovecot.log chmod 0666 /var/log/dovecot.log
Продолжаем
chown -R nobody:nobody /var/vmail chmod -R 0777 /var/vmail
Перезапускаем Dovecot:
# service dovecot onerestart
Проверяем
root@tmail:/var/log # telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK [XCLIENT] Dovecot ready. user acc@domain.ltd +OK pass q1w2e3 +OK Logged in. list +OK 2 messages: 1 348 2 348 . quit +OK Logging out. Connection closed by foreign host.
Добавляем Dovecot в запуск при загрузке системы в файл /etc/rc.conf:
dovecot_enable="YES"
На этом настройка почтового сервера завершена.
При проблемах – не забываем в первую очередь смотреть лог /var/log/maillog.
После настройки postfix нужно перестроить базу данных для файла почтовых алиасов /etc/aliases и /etc/aliases.db командой newaliases иначе почта может не ходить.
Часть 1 (PostfixAdmin)
Часть 2 (Postfix)
Apache24, MySQL56, PhP5
Apache24 + SSL и redirect http to https
Clamav
Spamassassin
Amavis-new + связь с Postfix
SSL сертификат для Postfix
SSL сертификат для Dovecot
Sieve + Dovecot
OpenDKIM + Postfix