Когда я запускаю команду spamassassin по электронной почте, она правильно идентифицирует письмо как спам и появляется так, как если бы заголовки были добавлены. Но файл фактически не обновляется, а заголовки остаются неизменными. Из-за моей репутации здесь я не могу опубликовать фактический вывод команд. Любая помощь приветствуется. Спасибо.
Чтобы начать, у /etc/spamassassin/local.cf есть 'report_safe 0' [! D1]
В принципе, я использую следующую команду для одного электронного письма в качестве примера.
/etc/spamassassin/local.cf имеет «report_safe 0»
. Результатом этого является полное письмо с заголовками X-Spam. В этом случае в качестве примера можно привести «X-Spam-Status: Yes, score = 24.0 required = 5.0».
Затем я просто просматриваю файл с надписью «more». Но заголовки X-Spam не видны. Ничего не изменилось.
mike @ servo: / mnt / filestore / mail / mike $ more INBOX / cur / 1476677884_0.3597.servo \, U \ = 678 \, FMD5 \ = 7e33429f656f1e6e9d79b29c3f82c57e: 2 \,
Изменить: я также хотел указать, что использование команды spamc вместо spamassassin приводит к тому же. Если я полностью не ошибаюсь в том, как это должно вести себя - команды должны фактически писать файл, а не просто выводить результат, правильно? - возможно, это вопрос разрешения? Похоже, что пользователь, который был установлен с spamassassin, является debian-spamd, вся моя почта хранится как -rw-rw-r-- mike: mike. Однако я не могу найти никаких журналов, чтобы доказать ошибку разрешения.
Для тех, кто может наткнуться на этот пост с похожим вопросом, ниже, как я решил эту проблему. Я перешел в fetchmail из offlineimap, чтобы поместить сообщения в отдельный каталог, и я добавил приведенный ниже сценарий к cron.
#!/bin/bash
#Mail directories. Do not include the trailing /.
NEWMAIL="/home/mike/.mailqueue"
INBOX="/mnt/filestore/mail/mike/INBOX/new"
JUNK="/mnt/filestore/mail/mike/.Junk/new"
#fetch new messages
fetchmail
#move any messages in new to cur
echo "Moving messages in /new to /cur"
mv $NEWMAIL/new/* $NEWMAIL/cur/
#check if directory contains files
if [ "$(ls -A $NEWMAIL/cur/)" ] ; then
#move out files that already have spamassassin headers to the INBOX and Junk folders
echo "Moving pre-processed files."
grep -lIZ ^X-Spam-Status\:\ Yes \
$NEWMAIL/cur/* |
xargs -I '{}' -0 mv '{}' $JUNK/
grep -lIZ ^X-Spam-Status\:\ No \
$NEWMAIL/cur/* |
xargs -I '{}' -0 mv '{}' $INBOX/
#run spamassassin on each remainining file and append .processed to the filename
for file in $NEWMAIL/cur/*
do
echo "Processing $file"
spamassassin $file > $file.processed
done
#move the processed files to the INBOX and Junk folders
echo "Moving processed files."
grep -lIZ ^X-Spam-Status\:\ Yes \
$NEWMAIL/cur/* |
xargs -I '{}' -0 mv '{}' $JUNK/
grep -lIZ ^X-Spam-Status\:\ No \
$NEWMAIL/cur/* |
xargs -I '{}' -0 mv '{}' $INBOX/
#delete the remaining files
echo "Deleting the remaining files."
rm -Rf $NEWMAIL/cur/*
#no files in directory
else
echo "Nothing to do."
fi