誰在告訴使用 Postfixadmin 和 Maildir 創建 cur、new 和 tmp 的位置
我試圖意識到哪個配置告訴 cur、tmp 和 new 是在哪裡創建的。當然,我一直在使用虛擬使用者,並且我接收和發送郵件到
virtualuser/domain/user/Maildir/new
andvirtualuser/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”
- 為什麼 PostfixAdmin 不創建我的郵箱?
> > PostfixAdmin 只是一個用於儲存配置設置的 Web 界面。它沒有(預設情況下!)在磁碟上創建郵件文件夾的能力。在正常設置中,發送“歡迎”電子郵件即可完成此任務 - 正如 Courier/Cyrus/etc 所做的那樣(並且有權這樣做) > > >
因此,我們可以得出結論,統治您的郵件目錄位置的後綴或鴿舍…
根據
postconf -n
上面的輸出,顯然您使用 postfix虛擬代理將傳入的電子郵件傳遞到 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$$ ‘domain_path’ $$
- $CONF$$ ‘domain_in_mailbox’ $$
- $CONF$$ ‘maildir_name_hook’ $$
config.inc.php
您可以在postfixadmin中搜尋這些參數的解釋。所以,如果你需要追加**/Maildir** in
virtual_mailbox_maps
,那麼你可以
- 改變。
select_field
_/etc/postfix/virtual_mailbox_maps.cf
maildir_name_hook
在 postfixadmin 中編寫你的函式。如果您打算使用選項 1,您還需要更改 dovecot 的參數,尤其是在
userdb
參數中。尋找home
欄位或mail_location
欄位。