Postfix / Dovecot与MySQL在CentOS 7上没有创build正确的目录结构

我在CentOS机器上使用了Postfix,Dovecot和MySQL来build立一个邮件服务器,为一些虚拟用户提供服务,但由于某种原因,它并没有将电子邮件存储在正确的文件夹中。 Postfix和Dovecot都使用一个叫做vmail的系统用户,它的主目录设置为/ home / vmail

域名及其关联的电子邮件地址存储在MySQL数据库中,Postfix应在/ home / vmail中创build邮箱。

电子邮件应按照以下格式存储在文件夹中:

但是无论他们的目标地址是什么,他们都被转储到这个文件夹中:

  • /家庭/ vmail / vmail / Maildir的

因为使用任何电子邮件客户端访问这些邮件是不可能的。 一切(authentication,发送/接收电子邮件)的作品,电子邮件只是不存储他们应该在的地方。

使用Courier而不是Dovecot的类似设置按预期工作,所以我认为这只是与Dovecot相关的事情。

这是我的鸽舍configuration降到最低:

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 = [email protected] } 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 - nn - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}