Sendmail 重新配置以便与 d​​ovecot 集成

Sendmail 重新配置以便与 d​​ovecot 集成

从 /var/log/maillog 中可以看到,当邮件收到或发送时,sendmail 会将邮件保存到 /var/spool/mail/$user 并将其记录为统计=已发送

当用户尝试通过 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 中没有关于此问题的日志。我想知道如何将邮件文件发送到用户的邮件目录?

答案1

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。但您必须做其中一件事,这不是魔术。

答案2

Sendmail 重新配置以便与 d​​ovecot 集成

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 仅对 UID 不小于 1000 的用户使用 dovecot
    [系统用户/账户使用经典传送,普通用户使用 dovecot]
  • 使 sendmail 支持向现有的虚拟 dovecot 用户发送邮件 [基于 local_procmail 的重新配置不支持它]

答案3

我的问题是 INBOX 文件路径错误。将 mail_location 从 maildir 更改为 mbox 并将 INBOX 文件更改为 /var/spool/mail/%u 后,出现了一些权限错误。

[root]# vim /etc/dovecot/conf.d/10-mail.conf    
mail_location = mbox:~/:INBOX=/var/spool/mail/%u

错误:

failed: Operation not permitted (egid=500)

然后设置权限

[root]# chmod 0600 /var/mail*

[root]# service dovecot restart

效果很好。

答案4

您需要编辑文件:/etc/procmailrc

# file: /etc/procmailrc
# system-wide settings for procmail
SHELL="/bin/bash"
SENDMAIL="/usr/sbin/sendmail -oi -t"
LOGFILE="/var/log/procmail.log"
DEFAULT="$HOME/Maildir/"
MAILDIR="$HOME/Maildir/"
:0
* ^X-Spam-Status: Yes
.spam/

相关内容