Отредактируем файл конфигурации 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

