谁能告诉我使用 Postfixadmin 和 Maildir 创建 cur、new 和 tmp 的位置

谁能告诉我使用 Postfixadmin 和 Maildir 创建 cur、new 和 tmp 的位置

我试图弄清楚哪个配置告诉了 cur、tmp 和 new 在哪里创建。当然,我一直在使用虚拟用户,我向和接收和发送邮件virtualuser/domain/user/Maildir/newvirtualuser/Maildir/cur我认为virtualuser/domain/user/Maildir/tmp是临时的,从来没有收到过电子邮件),但是当我使用 Postfixadmin 创建新邮箱时,它就是这样创建的

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

那么哪个配置文件中有此设置?是 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 

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

答案1

取自postfixadmin 常见问题解答

1)为什么 PostfixAdmin 没有创建我的邮箱?

PostfixAdmin 只是一个用于存储配置设置的 Web 界面。它(默认情况下!)不具备在磁盘上创建邮件文件夹的能力。在正常设置中,发送“欢迎”电子邮件即可完成此任务 - Courier/Cyrus/etc 就是这样做的(并且有权限这样做)

因此,我们可以得出结论,postfix 或 dovecot 决定了您的 maildir 的位置......


根据postconf -n上面的输出,显然你使用了后缀虚拟代理执行将传入电子邮件传递到 Maildir 的操作。因此,我们需要了解virtual代理如何选择传入电子邮件的目标邮箱。取自 man 8 virtual

邮箱位置由 virtual_mailbox_base 和 virtual_mailbox_maps 配置参数控制(见下文)。virtual_mailbox_maps 表按收件人地址建立索引,如下表搜索顺序中所述。

邮箱路径名的构造如下:

    $virtual_mailbox_base/$virtual_mailbox_maps(recipient)

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

因此,在您的情况下(/etc/postfix/virtual_mailbox_maps.cf),$virtual_mailbox_maps将使用此查询进行选择

SELECT maildir FROM mailbox WHERE username = $recipient;

与 一起$virtual_mailbox_base构成了邮箱的绝对路径。

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

  • $CONF['域名路径']
  • $CONF['域名在邮箱中']
  • $CONF['maildir_name_hook']

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


因此,如果您需要附加/邮件目录然后virtual_mailbox_maps你就可以

  1. select_field的改变/etc/postfix/virtual_mailbox_maps.cf
  2. maildir_name_hook在 postfixadmin 中写入您的功能。

如果你打算使用选项 1,你还需要更改 dovecot 的参数,特别是在userdb参数中。查找homefield 或mail_locationfield。

答案2

如果您从数据库中获取类似“virtualuser/domain/user”的文件夹字符串,则您不应该有这 3 个文件夹。

但是如果您从数据库中获取类似“virtualuser/domain/user/”的文件夹字符串,则您不应该有这 3 个文件夹。

相关内容