maildrop не сортирует письма (Unable to open mailbox)

Jan 17, 2024 09:01


Начал разворачивать копию почтовой системы на резервном сервере, и вот затык -
вся почта, которую я лью туда копией с основной - отказывается сортироваться, в логах maildrop сообщения вида
===
42/2632 (48759 bytes) from , delivery error (command maildrop 106756 error (75, /usr/bin/maildrop: Unable to open mailbox.))
===

И так, и эдак, и все что связано с правами на /var/mail перебрал - никак.

Значится так, методика:
1. maildrop можно запустить в тестовом режиме, в т.ч. и от root:
===
maildrop -V9 < /var/mail/__bulk/new/test_email    2>debu
===
где - "-V9" - verbose level 9 (максимальный уровень логгирования)
test_email - тело тестового письма (у меня 1705403334.M95719P112824V0000000000000802I00000000005ADB5D_0.linux8,S=48359)
2>debu - перенаправление в лог-файл debu

2. файл debu особо много не дает, далее помогает работа с конфигурационным файлом, у меня /etc/maildroprc и с логом самого maildrop:
===
#DEFAULT="$HOME/Maildir"

logfile "/var/mail/.log/maildrop.log"
VERBOSE="9"
===
вместо домашней папки происходит работа с /var/mail/

ведется журнал, с которым будем работать.

Дальше начинаем распихивать по тексту маячки вида log "HomeDir 1", log "HomeDir 2", log "HomeDir 3", и т.п., смотрим по логу ("/var/mail/.log/maildrop.log"), до какого маячка оно доходит.

Довольно быстро находим, что падает оно между "HomeDir 1_6-2" и "HomeDir 1_6-3", на "cc $COPY_DIR2":
===
# Check for Dupes
`reformail -D 8000 .dup/duplicate.cache`
log "HomeDir 1_6"
if ( $RETURNCODE == 0 )
    {
log "HomeDir 1_6+"
        log "Dupe detected!!!"
        ISDUPE  = "Yes"
#       exit
    }
else
    {
log "HomeDir 1_6-"
        # all include spam but deduped
        cc $BULK_DIR
log "HomeDir 1_6-1"
        cc $COPY_DIR
log "HomeDir 1_6-2"
    cc $COPY_DIR2
log "HomeDir 1_6-3"
    }
log "HomeDir 1_9"
===

откручиваем конфиг выше, и видим, что какая-то сволочь (кто-бы это мог быть?) закомментила определение COPY_DIR2 -
===
DEFAULT="/var/mail/__firm/__unknown"
BASENAME="/var/mail/__firm"
ARC_DIR  ="/var/mail/__arc"
BULK_DIR ="/var/mail/__bulk"
COPY_DIR ="/var/mail/__firm/_loop"
# COPY_DIR2 ="/var/mail/__firm/_loop2"
BAD_DIR  ="/var/mail/__badmail"
TEST_DIR ="/var/mail/__firm/test"
===

Ну и соответсвенно валится оно на попытке копирования cc $COPY_DIR2, ибо COPY_DIR2 не определено (пусто), со вполне очевидной ошибкой Unable to open mailbox.

Решение - комментим еще и cc $COPY_DIR2:
===
# cc $COPY_DIR2
===

Резюме:

1. Каждый случай индивидуален, надо смотреть:
- существование папок
- права на папки
- конфиги
2. Отладка может помочь найти недоступную папку.

linux, администрирование, админ, #default

Previous post Next post
Up