Dovecot 不會從 /var/spool/mail/$user 獲取郵件到 mail_location
正如在 /var/log/maillog 中看到的,當郵件接收或發送時,sendmail 將郵件保存到 /var/spool/mail/$user 並將它們記錄為stat=Sent
當使用者嘗試通過 imap 發送或接收郵件時,它不會顯示在 ~$user/mail/
/etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/mail:INBOX=~/mail/.INBOX
- 目錄和文件權限是正確的。
[root@mail ~]# ll -d /home/$user/mail drwx------. 7 $user $user 4096 Oct 25 14:04 /home/$user/mail
/var/log/maillog 中沒有關於此問題的日誌。我想知道如何將郵件文件發送到使用者的郵件目錄?
Andrzej 上面的評論是正確的;dovecot 不應該自動執行此操作。您要麼需要告訴 sendmail 將郵件放在 dovecot 所期望的位置(或至少告訴其本地投遞代理這樣做),要麼告訴 dovecot 將其放在 sendmail 所期望的位置。
就我而言,我做後者;我的
dovecot.conf
包括該行mail_location = mbox:~/:INBOX=/var/spool/mail/%u
編輯:您的 sendmail 與我的配置非常相似,
procmail
用作本地 MDA。procmail 的手冊頁建議這/var/spool/mail/$user
是 procmail 放置傳入郵件的預設位置,如果沒有提供其他位置:/var/spool/mail/$LOGNAME system mailbox; both the system mailbox and the immediate directory it is in will be created every time procmail starts and either one is not present
所以我重複我的觀點:您可以配置 sendmail 的 MDA,procmail,將收到的郵件放入
/home/$user/mail/.INBOX
,或者您可以配置 dovecot 以查看/var/spool/mail/$user
。但是你必須做這些事情之一,這不會靠魔法發生。
用於與 dovecot 集成的 Sendmail 重新配置
http://wiki2.dovecot.org/LDA/Sendmail
對於使用 dovecot 傳遞現有作業系統使用帳戶,請考慮將以下行添加到
sendmail,mc
文件 [sendmail.mc
需要編譯到sendmail.cf
]FEATURE(`local_procmail', `/usr/local/libexec/dovecot/dovecot-lda',`/usr/local/libexec/dovecot/dovecot-lda -d $u') MODIFY_MAILER_FLAGS(`LOCAL', `-f')
其他可能的 sendmail 重新配置選項
- 使 sendmail 僅對不小於 1000 的 UID 使用 dovecot
$$ clasic delivery for system users/accounts, dovecot for normal users $$
- 向現有的虛擬鴿舍使用者發送 sendmail 支持$$ local_procmail based reconfiguration DOES NOT support it $$