Я хочу, чтобы SpamAssassin учился исходящий отправляет письма как любительские, поэтому получатели автоматически добавляются в белый список. Но у меня проблемы с настройкой.
В идеале я просто хочу, чтобы Postfix передавал электронное письмо скрипту и продолжал обычную обработку.
Я уже придумал решение с content_filter
, но похоже, что это не работает надежно: особенно когда я отправляю нескольким людям, некоторые письма не доставляются. В журналах я вижу, что для некоторые получателей скрипт вызывается, но даже тогда только для некоторые из них электронное письмо действительно отправлено.
Поэтому, если возможно, я бы хотел избежать использования content_filter
. Есть ли другой способ? Если нет, что может быть не так с моей настройкой?
Вот что я получил прямо сейчас:
master.cf:
submission inet n - n - - smtpd
-o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o content_filter=spamassassin-outgoing
spamassassin-outgoing unix - n n - - pipe
flags=u user=spamd:spamd argv=/usr/local/bin/learnoutgoing.sh ${sasl_username} ${sender} ${recipient}
learnoutgoing.sh:
#!/bin/bash
if [ -z "$3" ] ; then
echo "$0: <user> <sender> <recipient>"
exit 1
fi
/usr/bin/logger Learn outgoing: ''"$1"'' ''"$2"'' ''"$3"''
# Save the stdin into a temporary file, we need to feed it into two
# different programs.
TMPFILE=`mktemp /tmp/outgoing.XXXXXXXXXX`
cat >$TMPFILE
# The user passed in $1 is in format 'user@domain' but we just want the user
USER=`sed 's/@.*//' <<<$1`
# Learn the mail as ham.
/usr/bin/spamc -u "$USER" --learntype ham <$TMPFILE &>/dev/null || true
# Send it.
/usr/sbin/sendmail -oi -f "$2" "$3" <$TMPFILE
# Save the return value of sendmail
RETCODE=$?
# Cleanup and exit
rm -f $TMPFILE
exit $RETCODE
Я хочу, чтобы SpamAssassin изучал исходящие письма как любительские, чтобы получатели автоматически добавлялись в белый список
Вы можете принять во внимание советы, данные на список рассылки sa о подобной настройке:
Возможно, это хорошая идея, но вы должны быть очень осторожны с одной вещью: убедитесь, что ваши пользователи достаточно сообразительны, чтобы их учетные записи не подвергались фишингу. Потребуется всего одна взломанная учетная запись, которая запустит спам-запуск, чтобы уничтожить полезность ваших байесовских данных.
Есть ли проблема с входящей электронной почтой, которая мотивирует ваш вопрос, или вы пытаетесь «подумать наперед» и решить потенциальную проблему, которую еще не видите?
Предложение (найдено по ссылке, которую я предоставил выше) использовать канал с sa-learn --ham
я думаю, сработает в вашем случае, но рассмотрите проблемы, которые это может вызвать.
Чтобы немного расширить свой ответ на основе ваших комментариев:
Я думаю, что часть вашей проблемы связана с вашим сценарием - аналогичный сценарий можно найти на Apache.org SpamAssassin вики использует $@
, скорее, чем $1/$2/$3
- звучит так, будто это может каким-то образом объяснить ваши симптомы. Вместо этого они используют:
logger <<<"Spam filter piping to SpamAssassin, then to: $SENDMAIL $@"
${SPAMASSASSIN} | ${SENDMAIL} "$@"
В зависимости от ваших конкретных потребностей, Spamassassin отметил что-то как спам, но не как спам. Как мне это сказать? может помочь: он предлагает периодически spamc
или sa-learn
бегать по почтовым ящикам пользователей, чтобы узнать.
Однако у меня лично есть небольшая концептуальная проблема с настройкой, которую вы, кажется, описываете: по сути, вы, кажется, говорите, что создаете папку для спама для пользователей, но обеспокоены тем, что они не будут ее проверять, так что вы хотел бы добавить в белый список все ответные электронные письма.
Я бы подумал, что в таком случае будет проще не иметь папку «Спам» и просто разрешить отправку электронной почты, помеченной как потенциально спам, пользователям «нормально», но с пометками, связанными со спамом (если только это не действительно плохо, и тогда его надо поместить на карантин).
Однако это чистое мнение с моей стороны: вы, вероятно, знаете и понимаете своих пользователей лучше, чем я. Я бы просто подумал, что в целом пользователи будут знать, что нужно проверять папку со спамом. действительно важный.