Mik*_*uit 3 postfix dovecot maildir
我试图意识到哪个配置告诉了 cur、tmp 和 new 的创建位置。当然,我一直在使用虚拟用户,我接收和发送邮件到virtualuser/domain/user/Maildir/new
和virtualuser/Maildir/cur
(我认为virtualuser/domain/user/Maildir/tmp
是非常临时的,从来没有收到和发送电子邮件)但是当我使用 Postfixadmin 创建一个新邮箱时,它是这样创建的
virtualuser/domain/user/tmp
virtualuser/domain/user/new
virtualuser/domain/user/cur
Run Code Online (Sandbox Code Playgroud)
然后我只需要将这个树文件夹移动到里面
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
Run Code Online (Sandbox Code Playgroud)
那么在哪个配置文件中有这个设置呢?是 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
Run Code Online (Sandbox Code Playgroud)
而 /etc/postfix/virtual_mailbox_maps.cf 有:
...
table = mailbox
select_field = maildir
where_field = username
Run Code Online (Sandbox Code Playgroud)
并从数据库中获取一个文件夹字符串,如“virtualuser/domain/user”
1) 为什么 PostfixAdmin 不创建我的邮箱?
PostfixAdmin 只是一个用于存储配置设置的 Web 界面。它(默认情况下!)没有在磁盘上创建邮件文件夹的能力。在正常设置中,发送“欢迎”电子邮件即可完成此任务 - 正如 Courier/Cyrus/etc 所做的那样(并且有权限这样做)
所以,我们可以得出结论,postfix 或 dovecot 统治着你的邮件目录的位置......
根据postconf -n
上面的输出,显然您使用 postfix虚拟代理将传入的电子邮件传送到 Maildir。所以我们需要了解virtual
代理如何选择传入电子邮件的目标邮箱。取自 man 8 virtual
邮箱位置由 virtual_mailbox_base 和 virtual_mailbox_maps 配置参数控制(见下文)。virtual_mailbox_maps 表由收件人地址编制索引,如下面的 TABLE SEARCH ORDER 所述。
邮箱路径名构造如下:
Run Code Online (Sandbox Code Playgroud)$virtual_mailbox_base/$virtual_mailbox_maps(recipient)
其中收件人是完整的收件人地址。
因此,在您的情况 ( /etc/postfix/virtual_mailbox_maps.cf
) 中,$virtual_mailbox_maps
将使用此查询选择
SELECT maildir FROM mailbox WHERE username = $recipient;
Run Code Online (Sandbox Code Playgroud)
与 一起$virtual_mailbox_base
构成邮箱的绝对路径。
现在,问题是 maildir 字段在哪里生成?Postfixadmin 使用 3 个参数来生成maildir
字段,
你可以在config.inc.php
postfixadmin 中搜索这些参数的解释。
所以,如果你需要在/Maildir中附加virtual_mailbox_maps
,那么你可以
select_field
的/etc/postfix/virtual_mailbox_maps.cf
。maildir_name_hook
在 postfixadmin 中编写您的函数。如果你打算使用选项1,你还需要改变dovecot的参数,尤其是userdb
参数。寻找home
领域或mail_location
领域。
归档时间: |
|
查看次数: |
3603 次 |
最近记录: |