Sendmail

Dovecot 不會從 /var/spool/mail/$user 獲取郵件到 mail_location

  • January 5, 2017

正如在 /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 $$

引用自:https://serverfault.com/questions/548638