URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96394
[ Назад ]

Исходное сообщение
"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"

Отправлено onehalf , 11-Дек-15 11:29 
Доброго всем дня!

Проблема в следующем:

Несколько почтовых серверов периодически начинают воспринимать письма из моего домена как спам.

Проверил по базам DNSBl мои ip-адреса - все чисто (http://www.dnsbl.info/dnsbl-database-check.php).

Также не  удается подключиться и через telnet на 25-й порт. МТА даже не выдает приветствие, а сразу выскакивают сообщения типа:

connect to xxx:25: Connection refused

host xxx refused to talk to me: 554 5.7.1 You are not allowed to connect

host xxx refused to talk to me: 554 IP=yyy - A problem occurred. (Ask your postmaster for help or to contact to clarify.) (BL))

Возможно это следствие работы postscreen (или чего-то аналогичного) на стороне получателя.

Исследование логов выяснило, что блокировка наступила сразу после того, как на их домен было отправлено сообщение, в котором не один получатель, а целый список.

Похоже, таким образом местный админ защищает свой домен от рассылок.

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

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

Этот вопрос легко решается, если в отправляемых письмах заменить содержимое заголовка "To:" (в котором может содержаться список получателей и по которому причисляют письмо к рассылке), на содержимое заголовка  "X-Original-To" (в котором всегда указан один адрес)

К сожалению, я пока не знаю как это сделать. Буду признателен любой помощи.


Содержание

Сообщения в этом обсуждении
"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Andrey Mitrofanov , 11-Дек-15 12:08 
>легко решается, если в отправляемых письмах заменить содержимое заголовка "To:"
> (в котором может содержаться список получателей и по которому причисляют письмо
> к рассылке), на содержимое заголовка  "X-Original-To" (в котором всегда указан
> один адрес)
> К сожалению, я пока не знаю

...", что такое envelope в smtp."


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 11-Дек-15 14:39 
>>легко решается, если в отправляемых письмах заменить содержимое заголовка "To:"
>> (в котором может содержаться список получателей и по которому причисляют письмо
>> к рассылке), на содержимое заголовка  "X-Original-To" (в котором всегда указан
>> один адрес)
>> К сожалению, я пока не знаю
> ...", что такое envelope в smtp."

envelope переводится как конверт. И как это использовать?

"X-Original-To:"  тоже не получится использовать, так как этот заголовок принимающий сервер пишет.

Можно попробовать header_checks REPLACE.

Вопрос в том, какие можно использовать переменные, чтобы написать макрос, который переписывает поле "To:" для каждого получателя из списка.


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Прохожий , 11-Дек-15 15:06 
> Этот вопрос легко решается, если в отправляемых письмах заменить содержимое заголовка "To:"

Этот вопрос никак не решается, если твой ip забили в access лист со значением reject.


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено eRIC , 11-Дек-15 15:26 
>  Этот вопрос никак не решается, если твой ip забили в access
> лист со значением reject.

+1


>connect to xxx:25: Connection refused
>host xxx refused to talk to me: 554 5.7.1 You are not allowed to connect
>host xxx refused to talk to me: 554 IP=yyy - A problem occurred. (Ask your postmaster for >help or to contact to clarify.) (BL))

вас все равно не любят, либо где-то засветились(BL их куча) или у них своя таблица где вас запретили. со всеми почтовиками у вас проблема или только выборочными?


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 11-Дек-15 16:02 
>>  Этот вопрос никак не решается, если твой ip забили в access
>> лист со значением reject.
> +1
>>connect to xxx:25: Connection refused
>>host xxx refused to talk to me: 554 5.7.1 You are not allowed to connect
>>host xxx refused to talk to me: 554 IP=yyy - A problem occurred. (Ask your postmaster for >help or to contact to clarify.) (BL))
> вас все равно не любят, либо где-то засветились(BL их куча) или у
> них своя таблица где вас запретили. со всеми почтовиками у вас
> проблема или только выборочными?

Проблема только с тремя серверами. Но я боюсь, что со временем могут вылезти и другие.

Письма до них доходили без проблем, пока из нашего домена не отправили им письмо, где в поле "To:" были целый список получателей (около 10). Все получатели из списка являются поставщиками оборудования для нашего предприятия. В письме им предлагалось принять участие в тендере по поставке оборудования.  

Это письмо было отброшено с ошибкой и все последующие письма также стали отбрасываться.

Я проверил свои адреса по всем базам. Ни в одной не значатся.

После того, как я попытался доставить то же самое письмо через резервный почтовый сервер, то он тоже сразу стал заблокированным.



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Дядя_Федор , 12-Дек-15 10:06 
Если человек не хочет пускать Вас в свою квартиру - он имеет на это право. Доступно объяснил? А своим пользователям, которые массово рассылают спам (а с точки зрения почтового трафика - это именно спам) - скажите спасибо.

"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено tootsie , 12-Дек-15 15:36 
> Если человек не хочет пускать Вас в свою квартиру - он имеет
> на это право. Доступно объяснил? А своим пользователям, которые массово рассылают
> спам (а с точки зрения почтового трафика - это именно спам)
> - скажите спасибо.

1. Определение спама в студию пожалуйста.

2. Вот такие гениальные администраторы рулят.
2.1. Принимающая сторона всегда виновата, сервер всегда должен принимать всю почту
2.2. Если уж проверяют по спискам, должны быть так любезны давать адекватный ответ при отказе принять почту

Лучше при рассылках формировать письма с одним получателем.  


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Дядя_Федор , 13-Дек-15 10:06 
А на кой чёрт Вы мне это говорите? Мне абсолютно по фигу как Ваши проблемы, так и Ваши измышления по этому поводу. Спорьте с админом того почтового сервера, который заблокировал приём почты от Вас. Про "всегда должен" это Вы сильно загнули. НИКТО НИЧЕГО ВАМ НЕ ДОЛЖЕН! Когда Вы это поймёте - многие Ваши проблемы будут решаться проще. Но Вы продолжайте и дальше быковать на тему того, что Вам все вокруг должны. А почта как не ходила, так и не будет ходить. Упрямство - первый признак тупости

"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено tootsie , 14-Дек-15 13:42 
> А на кой чёрт Вы мне это говорите? Мне абсолютно по фигу
> как Ваши проблемы, так и Ваши измышления по этому поводу. Спорьте
> с админом того почтового сервера, который заблокировал приём почты от Вас.
> Про "всегда должен" это Вы сильно загнули. НИКТО НИЧЕГО ВАМ НЕ
> ДОЛЖЕН! Когда Вы это поймёте - многие Ваши проблемы будут решаться
> проще. Но Вы продолжайте и дальше быковать на тему того, что
> Вам все вокруг должны. А почта как не ходила, так и
> не будет ходить. Упрямство - первый признак тупости

зачем так нервничаешь, дорогой


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено tonys , 13-Дек-15 16:04 
> Доброго всем дня!
> Проблема в следующем:
> Несколько почтовых серверов периодически начинают воспринимать письма из моего домена
> как спам.
> К сожалению, я пока не знаю как это сделать. Буду признателен любой
> помощи.

А если попробовать научить пользователей загонять список получателей в поле "Скрытая копия"?
В этом случае в To: будет один адрес, а список в BCC:.


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено pavlinux , 14-Дек-15 03:46 

# echo '/^To: \s+<(.*?)@pupkin.ru>/ REPLACE X-Original-To: <$1@pupkin.ru>' >> /etc/postfix/header_rewriter
# echo 'header_checks = pcre:/etc/postfix/header_rewriter' >> /etc/postfix/main.cf
# /etc/init.d/postfix reload;



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 14-Дек-15 08:53 
>
 
> # echo '/^To: \s+<(.*?)@pupkin.ru>/ REPLACE X-Original-To: <$1@pupkin.ru>' >> /etc/postfix/header_rewriter
> # echo 'header_checks = pcre:/etc/postfix/header_rewriter' >> /etc/postfix/main.cf
> # /etc/init.d/postfix reload;
>

Это не то.  

Мне нужно, чтобы вместо списка получателей в поле "To:" был только один получатель, который реально получит данную копию письма.

Удивляют рекомендации каким-то образом заставлять пользователей отправлять письма только одному адресату. Как вы это собираетесь сделать ?  Это вообще не его проблемы.

Чтобы уйти от вопросов спама, можно посмотреть на задачу с точки зрения сохранения информации.

Если пользователю удобно отправлять письма списку получателей - это его право. Но получатели вряд-ли имеют право видеть весь список получателей.

Есть пример добавления текста в конец письма с помощью программы altermime. А главное, в хелпе к команде pipe расписаны переменные, которые можно использовать в скриптах.

https://invaleed.wordpress.com/2007/03/07/postfix-altermime-.../

Более того, следующий пример показывает как можно получить доступ к любой информации в отправляемом письме, для использования ее в собственных скриптах. Изменения в скрипте между
####### Changed From Original Script #######
и
####### Changed From Original Script END #######

https://www.howtoforge.com/add-disclaimers-to-outgoing-email...



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Аноним , 14-Дек-15 16:18 
Ещё раз для машинистов бронепоезда.
Если блокировка на том конце на уровне IP-адреса Вашего почтового сервера - Вы может хоть пополам порваться, хоть все хидеры поменять - ничего не поможет. Если у Вас при отправке на адреса 1@domen.ru, 2@domen.ru,...,1000@domen.ru не проходит доставка почты, то точно так же она не будет проходить, если Вы эти письма побьёте на 1000 писем с одним реципиентом в каждом письме. Андэстэнд? Или так и будем продолжать тупить?

"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено pavlinux , 14-Дек-15 16:19 
> Это не то

Заголовок темы прочитай ещё раз. "postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"  

> Мне нужно

smtp_destination_recipient_limit = 1

> host xxx refused to talk to me: 554 5.7.1 You are not allowed to connect

И да, тебя банят по IP-адресу. Так что, юзай TOR иль другие туннели.  


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено tootsie , 15-Дек-15 08:30 
>[оверквотинг удален]
> любой момент с какими-нибудь другими доменами, которые также получат такие письма.
> Также я не могу запретить пользователям отсылать такие сообщения. Они в любой
> момент могут отправить извещения поставщикам или клиентам об изменениях цен или
> появлении скидок.
> Этот вопрос легко решается, если в отправляемых письмах заменить содержимое заголовка "To:"
> (в котором может содержаться список получателей и по которому причисляют письмо
> к рассылке), на содержимое заголовка  "X-Original-To" (в котором всегда указан
> один адрес)
> К сожалению, я пока не знаю как это сделать. Буду признателен любой
> помощи.

То  есть вот так сразу, если было письмо где много получателей, то не просто не пропустить такое письмо, а сразу заблокировать весь узел отправивший такое письмо?
Гениально


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Дядя_Федор , 15-Дек-15 08:49 
> То  есть вот так сразу, если было письмо где много получателей,
> то не просто не пропустить такое письмо, а сразу заблокировать весь
> узел отправивший такое письмо?
> Гениально

Гениально - верить на слово топикстартеру. Есть подозрение, что его заблокировали не потому, что в письме "было много получателей". С вероятностью процентов 90 его находчивые пользователи рассылали именно спам. Более того, даже после того, как его IP заблокировали - ему кровь из носа очень хочется таки этот самый спам пропихнуть той стороне, которая его заблокировала.



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 24-Дек-15 16:06 
>> То  есть вот так сразу, если было письмо где много получателей,
>> то не просто не пропустить такое письмо, а сразу заблокировать весь
>> узел отправивший такое письмо?
>> Гениально
>  Гениально - верить на слово топикстартеру. Есть подозрение, что его заблокировали
> не потому, что в письме "было много получателей". С вероятностью процентов
> 90 его находчивые пользователи рассылали именно спам. Более того, даже после
> того, как его IP заблокировали - ему кровь из носа очень
> хочется таки этот самый спам пропихнуть той стороне, которая его заблокировала.

Хотя разговор уже давно пошел не по теме, все-таки отвечу -
"Не зря говорят, что человек, у которого в руках молоток, в первую очередь ищет по чему бы стукнуть".

Спам - это нежелательная рассылка. Но рассылка может быть и деловая. Если у сотрудника есть список поставщиков необходимого оборудования, то никто не может запретить ему отправить приглашение на тендер в виде рассылки.

Переписка с поставщиками может идти годами и глупо блокировать из-за одного письма.

По моему мнению, если кто-то получил от нас письмо, то нужно принимать от него письма, как бы криво не был настроен их почтовик.

Многие полагаются на RBL и используют их десятками. Но часто бывает так, что из-за одного спамера в списк RBL попадают целые диапазоны адресов провайдеров или хостеров. В этом случае блокировка начинает срабатывать по всем клиентам этого провайдера или хостера.

Чтобы обеспечить бесперебойную переписку с УЖЕ ПРОВЕРЕННЫМИ клиентами, крайне желательно использовать списки whitelist, которые составляются автоматически из ПОЛУЧАТЕЛЕЙ писем из нашего домена.

В завершении приведу скрипт который давно использую лично я. Может кому-нибудь и понадобится.

#!/bin/sh
# auto whitelisting - accept legal recipients as legal senders

mydomain=!!!!!!!!!!!                       # замените !!!!! на свой домен
configdir=/etc/postfix                  # postfix config dir
tmp=$configdir/tmp                      # tmp dir

if ! [ -d $tmp ]; then                  # prepare tmp dir
    mkdir $tmp
fi

map_name=map_sender_auto_whitelist      # map file name in postfix config dir
map=$tmp/$map_name                      # tmp map
map_ok=$configdir/$map_name             # check_sender_access $map_ok
log=/var/log/autowl.log                 # job log
dt=`date "+%F %R"`                      # current time


cat /var/log/maillog | grep -i 'status=sent' | grep -i -v -E "to=<.*@$mydomain>" | grep -i -E -o "to=<.*>" | cut -c 5- | cut -d '>' -f 1 | tr 'A-Z' 'a-z' |sort -f -u > "$map.tmp"

if ! [ -f $map.old ]; then              # first start
    /bin/cp -f "$map.tmp" "$map.old"    # making old map
    before=0
else
    before=`cat "$map.old" | wc -l`     # old map count
fi


/bin/cp -f "$map.old" "$map.save"       # saving old map
cat "$map.tmp" >> "$map.save"           # old map with new data (with dublicates)
sort -f -u "$map.save" > "$map.new"     # new map (w/o dublicates)

after=`cat "$map.new" | wc -l`          # new map count


if [ "$before" != "$after" ]; then
    echo "$dt: new data. updating postfix config. total $after records" >> $log;
    diff "$map.old" "$map.new" | grep '@' >> $log
    /bin/cp -f "$map.old" "$map.save"   # для сравнения между циклами. отладка
    /bin/cp -f "$map.new" "$map.old"
    sed 's/$/\tOK/' $map.new > $map_ok
    postmap btree:$map_ok
    postfix reload
else
    echo "$dt: nothing to do" >> $log;
fi

вызывать из крона (у меня частота повтора 5 минут)

в main.cf добавить проверку check_sender_access btree:/etc/postfix/map_sender_auto_whitelist
в секции
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_client_restrictions =

В секцию smtpd_recipient_restrictions добавлять НЕ НАДО!


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Дядя_Федор , 24-Дек-15 18:04 
Хороший ответ. И скрипт полезный (наверное). :) НО Вы всё-таки попробуйте прочитать, что пишет автор. А потом подумать - поможет ли ЕМУ Ваш скрипт. Оставим за рамками обсуждения - прав там админ на том конце "трубы" или нет. Просто примем как факт - по какой-то (пусть будет - неведомой нам) причине его сервер заблокировали. Судя по описанию - заблокировали по IP. Вопрос - поможет ли ему Ваш скрипт? И второй вопрос - поможет ли разбивка письма с кучей адресов на кучу писем с одним полем отправителя в каждом?

"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 25-Дек-15 08:47 
> Хороший ответ. И скрипт полезный (наверное). :) НО Вы всё-таки попробуйте прочитать,
> что пишет автор. А потом подумать - поможет ли ЕМУ Ваш
> скрипт. Оставим за рамками обсуждения - прав там админ на том
> конце "трубы" или нет. Просто примем как факт - по какой-то
> (пусть будет - неведомой нам) причине его сервер заблокировали. Судя по
> описанию - заблокировали по IP. Вопрос - поможет ли ему Ваш
> скрипт? И второй вопрос - поможет ли разбивка письма с кучей
> адресов на кучу писем с одним полем отправителя в каждом?

Я уже писал, что изучал логи почтового сервера и выяснил, что блокировка появилась сразу после письма, в котором был список получателей. До этого все письма принимались нормально.

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

Этого бы не произошло, если на принимающей стороне работал скрипт, похожий на тот, что я выложил.

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

При любых отлупах,  к сообщению об ошибке добавляется ссылка на ресурс, в котором прописаны инструкции по самостоятельному решению этой проблемы.

Во-первых, предлагается связаться с получателем письма по телефону или с другого почтового адреса, с просьбой прислать в их адрес тестовое письмо. Как только письмо будет успешно доставлено, менее чем через 5 минут они смогут спокойно вести деловую переписку. Как вы понимаете, если скрипт работает, то он все сделает сам.

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


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



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Дядя_Федор , 25-Дек-15 11:22 
> Однако основной темой данного топика являлся вопрос о настройке почтового сервера передающей
> стороны таким образом, чтобы при отправке писем со списком получателей, он
> заменял список на реального получателя.  В этом случае подобные проблемы
> не возникнут.

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


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 25-Дек-15 15:36 
>> Однако основной темой данного топика являлся вопрос о настройке почтового сервера передающей
>> стороны таким образом, чтобы при отправке писем со списком получателей, он
>> заменял список на реального получателя.  В этом случае подобные проблемы
>> не возникнут.
>  Такая проблема, которую Вы описали - возникнет. Вам уже раз пять
> об этом говорили, но Вы, как баран, упёрлись и никак этого
> не поймёте. Все остальные Ваши измышления лично мне неинтересны в рамках
> поставленной задачи.

Я смотрю, вы просто упиваетесь возможностью безнаказанно оскорблять собеседника.  Если вам нечего сказать по теме, то можете просто промолчать. Не обязательно забивать тему оффтопом.


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Square1 , 27-Дек-15 11:18 
>[оверквотинг удален]
>>> стороны таким образом, чтобы при отправке писем со списком получателей, он
>>> заменял список на реального получателя.  В этом случае подобные проблемы
>>> не возникнут.
>>  Такая проблема, которую Вы описали - возникнет. Вам уже раз пять
>> об этом говорили, но Вы, как баран, упёрлись и никак этого
>> не поймёте. Все остальные Ваши измышления лично мне неинтересны в рамках
>> поставленной задачи.
> Я смотрю, вы просто упиваетесь возможностью безнаказанно оскорблять собеседника.  Если
> вам нечего сказать по теме, то можете просто промолчать. Не обязательно
> забивать тему оффтопом.

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

Вам уже много раз сказали как решается ваша проблема.


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Square1 , 27-Дек-15 11:24 
>  Как вы понимаете, письма в никуда
> никто не шлет, и если письмо было отправлено конкретному адресату, то
> значит для этого были веские причины.

Добро пожаловать в реальный мир Нео.
Это называется спам.
И письма "в никуда", и "веские причины" в виде килобаксов за массовые спам-рассылки по автоматически генерируемым емейлам ...

Вы как будто со звезд вернулись и стали нежданно-негаданно админом почтового сервера...и мысль поперла... :)


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 28-Дек-15 11:05 
Вы не читали всю переписку. Разговор идет о письмах из собственного домена. Не думаете же вы, что сотрудники вашего предприятия в рабочее время занимаются рассылкой спама?

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

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


"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено Square1 , 27-Дек-15 11:36 

> стороны таким образом, чтобы при отправке писем со списком получателей, он
> заменял список на реального получателя.  В этом случае подобные проблемы
> не возникнут.

Это домысел. Спам защита принимающей стороны проанализирует ТЕКСТ писем, и примет решение, спамер вы или нет.

А количество получателей в поле ТО: не имеет в общем случае никакого значения вообще.



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено fantom , 28-Дек-15 07:10 
>> стороны таким образом, чтобы при отправке писем со списком получателей, он
>> заменял список на реального получателя.  В этом случае подобные проблемы
>> не возникнут.
> Это домысел. Спам защита принимающей стороны проанализирует ТЕКСТ писем, и примет решение,
> спамер вы или нет.
> А количество получателей в поле ТО: не имеет в общем случае никакого
> значения вообще.

В общем - может и так, но вот в дольшом количестве частных случаев - Еще как имеет!
Чем болльше получателей - тем больше вероятность спама.



"postfix - заменить содерж. заголовка 'To:' на 'X-Original-To'"
Отправлено onehalf , 28-Дек-15 11:10 
>>> стороны таким образом, чтобы при отправке писем со списком получателей, он
>>> заменял список на реального получателя.  В этом случае подобные проблемы
>>> не возникнут.
>> Это домысел. Спам защита принимающей стороны проанализирует ТЕКСТ писем, и примет решение,
>> спамер вы или нет.
>> А количество получателей в поле ТО: не имеет в общем случае никакого
>> значения вообще.
> В общем - может и так, но вот в дольшом количестве частных
> случаев - Еще как имеет!
> Чем болльше получателей - тем больше вероятность спама.

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

Чтобы автоматизировать этот процесс, я предложил использовать скрипт.

Я уже приводил его, но забыл упомянуть, что если у вас не отключена доставка dsn за пределы домена, то необходимо внести в него изменения. Из списка доверенных получателей необходимо исключить получателей различных bounce.

в скрипт необходимо добавить строки:

bounce_id_file=$tmp/bounce_id.tmp       # any bounce id file
cat /var/log/maillog | grep 'postfix/bounce' | cut -d ':' -s -f 6 | cut -c 2- > $bounce_id_file

и основной запрос данных будет выглядеть так:

cat /var/log/maillog | grep -i 'status=sent' | grep -i -v -E "to=<.*@$mydomain>" | grep -v -f $bounce_id_file

измененный скрипт, в котором учтено, что ваш сервер отправляет dsn за пределы домена:

#!/bin/sh
# auto whitelisting - accept legal recipients as legal senders

mydomain=!!!!!!                        # замените на ваш домен
configdir=/etc/postfix                  # postfix config dir
tmp=$configdir/tmp                      # tmp dir

if ! [ -d $tmp ]; then                  # prepare tmp dir
    mkdir $tmp
fi

map_name=map_sender_auto_whitelist      # map file name in postfix config dir
map=$tmp/$map_name                      # tmp map
map_ok=$configdir/$map_name             # check_sender_access $map_ok
log=/var/log/autowl.log                 # job log
bounce_id_file=$tmp/bounce_id.tmp       # any bounce id file
dt=`date "+%F %R"`                      # current time

cat /var/log/maillog | grep 'postfix/bounce' | cut -d ':' -s -f 6 | cut -c 2- > $bounce_id_file
cat /var/log/maillog | grep -i 'status=sent' | grep -i -v -E "to=<.*@$mydomain>" | grep -v -f $bounce_id_file | grep -i -E -o "to=<.*>" | cut -c 5- | cut -d '>' -f 1 | tr 'A-Z' 'a-z' |sort -f -u > "$map.tmp"

if ! [ -f $map.old ]; then              # first start
    /bin/cp -f "$map.tmp" "$map.old"    # making old map
    before=0
else
    before=`cat "$map.old" | wc -l`     # old map count
fi


/bin/cp -f "$map.old" "$map.save"       # saving old map
cat "$map.tmp" >> "$map.save"           # old map with new data (with dublicates)
sort -f -u "$map.save" > "$map.new"     # new map (w/o dublicates)

after=`cat "$map.new" | wc -l`          # new map count


if [ "$before" != "$after" ]; then
    echo "$dt: new data. updating postfix config. total $after records" >> $log;
    diff "$map.old" "$map.new" | grep '@' >> $log
    /bin/cp -f "$map.old" "$map.save"   # для сравнения между циклами. отладка
    /bin/cp -f "$map.new" "$map.old"
    sed 's/$/\tOK/' $map.new > $map_ok
    postmap btree:$map_ok
    postfix reload
fi