谁在告诉使用Maildir使用Postfixadmin创buildcur,new和tmp

我试图了解哪个configuration告诉了cur,tmp和new是在哪里创build的。 当然,我已经使用虚拟用户,我收到并发送到虚拟用户virtualuser/domain/user/Maildir/new和虚拟用户virtualuser/Maildir/cur (我认为virtualuser/domain/user/Maildir/tmp是非常临时的,永远不会得到电子邮件),但是当我使用Postfixadmin创build一个新的邮箱时,就是这样创build的

 virtualuser/domain/user/tmp virtualuser/domain/user/new virtualuser/domain/user/cur 

那么我只需要移动这个树内的文件夹

  virtualuser/domain/user/Maildir (this is how i would I would like to be created) so I would have: virtualuser/domain/user/Maildir/cur virtualuser/domain/user/Maildir/tmp virtualuser/domain/user/Maildir/new 

那么在哪个configuration文件中有这个设置? Postfix,Dovecot或Postfixadmin?

另外我有这个conf:

 # Postfix: alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases broken_sasl_auth_clients = yes command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix home_mailbox = Maildir/ html_directory = no inet_interfaces = all inet_protocols = all local_recipient_maps = $virtual_mailbox_maps local_transport = dovecot mail_owner = postfix mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT" mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mynetworks_style = host newaliases_path = /usr/bin/newaliases.postfix queue_directory = /var/spool/postfix relay_domains = $mydestination sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtpd_banner = $myhostname ESMTP smtpd_delay_reject = yes smtpd_helo_required = yes smtpd_tls_auth_only = yes smtpd_tls_loglevel = 1 smtpd_use_tls = yes transport_maps = hash:/etc/postfix/transport virtual_alias_maps = mysql:/etc/postfix/virtual_alias_maps.cf virtual_mailbox_base = /home/virtualuser virtual_mailbox_domains = mysql:/etc/postfix/virtual_mailbox_domains.cf virtual_mailbox_limit = 512000000 virtual_mailbox_maps = mysql:/etc/postfix/virtual_mailbox_maps.cf virtual_transport = virtual Dovecot: mail_home = mail_location = maildir:~/Maildir 

和/etc/postfix/virtual_mailbox_maps.cf有:

  ... table = mailbox select_field = maildir where_field = username 

并从数据库中获取文件夹string,如“virtualuser / domain / user”

采取postfixadmin常见问题

1)为什么不是PostfixAdmin创build我的邮箱?

PostfixAdmin只是一个存储configuration设置的Web界面。 它不(默认情况下)能够在磁盘上创build邮件文件夹。 在正常的设置中,发送“欢迎”电子邮件可以完成此任务 – 正如Courier / Cyrus /等人所做的那样(并且有权这么做)

所以,我们可以得出这样的结论:后缀或dovecot谁统治你的maildir的位置…


根据postconf -n输出,显然你使用postfix 虚拟代理来执行Maildir的传入邮件传递。 所以我们需要了解virtual代理如何挑选传入邮件的目标邮箱。 采取从人8虚拟

邮箱位置由virtual_mailbox_base和virtual_mailbox_mapsconfiguration参数(见下文)控制。 virtual_mailbox_maps表由收件人地址索引,如下面的TABLE SEARCH ORDER所述。

邮箱path名的构造如下:

  $virtual_mailbox_base/$virtual_mailbox_maps(recipient) 

收件人是完整的收件人地址。

所以,在你的情况( /etc/postfix/virtual_mailbox_maps.cf $virtual_mailbox_maps将与此查询select

 SELECT maildir FROM mailbox WHERE username = $recipient; 

$virtual_mailbox_base一起,它们构造邮箱的绝对path。

现在,问题是maildir字段在哪里产生? Postfixadmin使用3个参数来生成maildir字段,

  • $ CONF [ 'domain_path']
  • $ CONF [ 'domain_in_mailbox']
  • $ CONF [ 'maildir_name_hook']

您可以在postfixadmin的config.inc.php中search这些参数的解释。


所以,如果你需要在virtual_mailbox_maps附加/ Maildir ,那么你可以

  1. 改变/etc/postfix/virtual_mailbox_maps.cf select_field
  2. 在postfixadmin中编写你的maildir_name_hook函数。

如果您打算使用选项1,则还需要更改dovecot的参数,特别是在userdb参数中。 寻找homemail_location字段。

如果你从数据库得到一个像“virtualuser / domain / user”这样的文件夹string,你不应该有这3个文件夹。

但是,如果你从数据库中得到像“virtualuser / domain / user /”这样的文件夹string,你不应该有这3个文件夹。