Centos
如何為 Postfix 創建具有足夠權限的 Maildir 目錄?
我有安裝了 Postfix 的 CentOS 5.5。我想使用具有預設設置的本地投遞代理,但我希望它使用Maildir 目錄樣式郵箱儲存郵件。
當我將郵箱設置為儲存(預設)時:
mail_spool_directory = /var/spool/mail/
我手動創建了maildir,所以它看起來像這樣:
[root@dx2200 /]# ls -lah /var/spool/mail/ total 32K drwxrwxr-x 4 root mail 4.0K Mar 15 15:01 . drwxr-xr-x 13 root root 4.0K Mar 15 14:33 .. drwxr-xr-x 5 root root 4.0K Mar 15 14:52 marshra drwxr-sr-x 5 pedro mail 4.0K Mar 15 15:01 pedro [root@dx2200 /]# [root@dx2200 /]# ls -lah /var/spool/mail/pedro/ total 40K drwxr-sr-x 5 pedro mail 4.0K Mar 15 15:01 . drwxrwxr-x 4 root mail 4.0K Mar 15 15:01 .. drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 cur drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 new drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:03 tmp [root@dx2200 /]#
然後我嘗試向本地使用者發送郵件
pedro
,郵件沒有被傳遞,我/var/log/maillog
說:Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: maildir access problem for UID/GID=1014/1014: error writing message: Permission denied Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: perhaps you need to create the maildirs in advance Mar 15 15:11:00 dx2200 postfix/local[4266]: 8D5D11310056: to=<pedro@dx2200.it.eclocal>, orig_to=<pedro>, relay=local, delay=0.04, delays=0.02/0.01/0/0.01, dsn=5.3.0, status=bounced (maildir delivery failed: error writing message: Permission denied)
我在使用虛擬傳遞代理時遇到了類似的問題,
virtual_mailbox_base
從/var/spool/vmail
主目錄更改/home/vmail
確實有幫助。我也必須與當地的送貨代理一起做嗎?如果是這樣- 為什麼我不能儲存郵件/var/spool
?
編輯:根據評論完全重寫答案
該問題可能與 SELinux 有關。您可以執行例如
sestatus
檢查它是啟用還是禁用。對於maildir投遞,postfix更改為對應的使用者,所以目標目錄需要使用者可寫。情況似乎已經如此。出於隱私考慮,我建議
chmod -R o-rwx /var/spool/mail/*
*僅出於完整性考慮:*如果使用 mbox 文件,則 spool 目錄需要可由
chmod -R g+rwX /var/spool/mail
.