Назад | Перейти на главную страницу

Postfix / Dovecot с MySQL на CentOS 7 не создает правильную структуру каталогов

Я настроил почтовый сервер с использованием Postfix, Dovecot и MySQL на машине CentOS для обслуживания некоторых виртуальных пользователей, но по какой-то причине он не хранит электронные письма в соответствующих папках. Postfix и Dovecot используют системного пользователя с именем vmail с его домашним каталогом, установленным на / главная / vmail

Домены и связанные с ними адреса электронной почты хранятся в базе данных MySQL, и Postfix должен создавать свои почтовые ящики в / home / vmail.

Электронные письма должны храниться в папках следующего формата:

Но независимо от адреса назначения все они сбрасываются в эту папку:

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

Аналогичная установка с использованием Courier вместо Dovecot работает должным образом, поэтому я предполагаю, что это связано только с Dovecot.

Вот моя конфигурация голубятни, уменьшенная до минимума:

protocols = imap pop3
log_timestamp = "%Y-%m-%d %H:%M:%S"
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

namespace {
    type = private
    separator = .
    prefix = INBOX.
    inbox = yes
}
service auth {
    unix_listener auth-master {
        mode = 0600
        user = vmail
    }
    unix_listener /var/spool/postfix/private/auth {
        mode = 0666
        user = postfix
        group = postfix
    }
    user = root
}
service auth-worker {
    user = root
}
protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@example.com
}
protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
}
passdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
    driver = static
    args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}

А вот параметры постфикса, которые я изменил по умолчанию.

myhostname = testcentos.com
mydestination = localhost, localhost.localdomain
mynetworks = 127.0.0.0/8
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, permit
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
virtual_maildir_extended = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps

inet_interfaces = all
message_size_limit = 30720000
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
virtual_create_maildirsize = yes
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

проверьте ваш файл /etc/postfix/master.cf, он должен содержать что-то вроде:

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}