LINUX.ORG.RU
ФорумAdmin

макрос для sendmail from=to -> admin@mydomain.com


0

0

Добрый день. Сразу скажу что в sendmail я новичек. Но все таки я его поставил, настроил и все даже работает. Но вот задача (клиент хочет) что бы почтовые пользователи не могли слать сами себе сообщения. Если такое сообщение появляется (а они есть) то оно пересылалось на ящик admin@mydomen.com. То есть (насколько я разобрался в проблеме) в sendmail нужно создать макрос который проверяет заголовок письма и если from=to переслать это сообщение на admin@mydomain.com. Или я не прав? Но вот проблема сижу пару дней над макросами, ничего не понятно и ничего не получается. Может я изобретаю велосипед? Если есть у кого подобный опыт поделитесь. Спасибо.


Каждое из заданий в sendmail обрабатывает свое поле:
check_mail - from:
check_rctp - to:
check_conn - узел связи.

На сколько я знаю, в Sendmail макросами нельзя добиться такого результата. Для того, чтобы анализировать все эти поля письма вместе, удобно подходят milter': https://www.milter.org/

Предлагаю поискать там или написать самому.

Noldor
()

вам нужно только перенаправлять такую почту или все же доставлять получателю плюс посылать копию админу?

в первом случае - LOCAL_RULE_0 (есть сомнения насчет проверки from=to, но если сначала сохранить from в макросе, а потом вызывать его на этапе обработки получателя, то, думаю, все должно получиться, главное, чтобы storage работал :)

во втором - COPYMAIL с небольшими изменениями

Sciurus
()
Ответ на: комментарий от Sciurus

Нет, копию никуда посылать не надо. Письмо которое удовлетворяет from=to отправить не адресату а admin@mydomain.com

vs
() автор топика
Ответ на: комментарий от vs

LOCAL_CONFIG
Ksyslog syslog
Kstorage macro

LOCAL_RULE_0
R$* $: $1 $| <$&{addr_type}> $| <$&{deliveryMode}>
R$* $| <e s> $| <i> $: $(storage {Sender} $@ $1 $) $1

если mydomain.com - это удаленная система
R$&{Sender} $| <e r> $| <i> $#esmtp $@ host.mydomain.com. $: admin<@mydomain.com.>
если локальная
R$&{Sender} $| <e r> $| <i> $#local $: admin

R$* $| $* $| $* $: $1

Написано на скорую руку для sendmail запущенного в background delivery mode

Не проверялось
о результате сообщите

что нужно будет потом подправить:
- возможно, учитывать opmode если он равен i, т.е. была запущена команда newaliases
- очищать макрос Sender (ну это больше для красоты)

Sciurus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.