Выполнить скрипт / программу для исходящей почты

Я хочу, чтобы 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
0
задан 9 April 2017 в 12:27
1 ответ

Я хочу, чтобы 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 для изучения почтовых ящиков пользователей.

Однако у меня лично есть небольшая концептуальная проблема с настройкой, которую вы, кажется, описываете: по сути, вы, кажется, говорите, что создаете папку для спама для пользователей, но беспокоитесь, что они не будут ее проверять, чтобы вы хотели занести в белый список все ответные электронные письма.

Я бы подумал, что в таком случае будет проще не иметь папку «Спам» и просто разрешить отправку сообщений, помеченных как потенциально спам, пользователям «в обычном режиме», но с пометками, связанными со спамом (если только это не действительно плохой, а то его надо на карантин).

Это чистое мнение с моей стороны: вероятно, вы знаете и понимаете своих пользователей лучше, чем я. Я просто подумал, что в целом пользователи будут знать, что нужно проверять папку со спамом на предмет действительно важного.

0
ответ дан 5 December 2019 в 08:21

Теги

Похожие вопросы