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