Как видно из / var / log / maillog при получении или отправке почты, sendmail сохраняет письма в / var / spool / mail / $ user и регистрирует их как stat = Отправлено
Когда пользователь пытается отправить или получить почту через 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 нет журнала об этой проблеме. Мне интересно, как отправить почтовый файл в почтовый каталог пользователя?
Приведенный выше комментарий Анджея верен; 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
поэтому я повторяю свою точку зрения: вы можете настроить MDA sendmail, procmail, чтобы помещать входящую почту в /home/$user/mail/.INBOX
, или вы можете настроить голубятню для просмотра /var/spool/mail/$user
. Но вам придется сделать одну из этих вещей, это не произойдет по волшебству.
Чтобы использовать 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')
Моя проблема в том, что путь к файлу 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
Это работает хорошо.
Если вас не интересует ситовая фильтрация, вы можете настроить dovecot на использование / var / mail / username в качестве почтового ящика и сохранение остальных почтовых ящиков пользователя в формате Maildir.
Это заставит dovecot «видеть» сообщения, доставленные MTA / sendmail в расположение по умолчанию - перенастройка MTA / sendmail не потребуется.
Вам нужно отредактировать файл: / 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/