Регистрация...

Eserv Forum / E3 / Eserv 3 Mail Server Support / Удалять письма от мнимых внутренних пользователей!

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Приветствую All,

Вот такая задача: нужно удалять письма, которые приходят из интернета , а в качестве отправителя указан внутренний пользователь!

Я в CustomMContent.rules.txt сваял правило, но что-то не работает! Что тут не так:

S" From" S" *@emborg.*" CheckRecipient
[IF]
CLIENT Lists[LocalNetworks] IsInFile 0=
[IF]
    mcCHANGED 0!
    DeleteCurrentFile
[THEN]
[THEN]
 
Комментарии к этой версии (01.12.2008 13:41) [~IA] ea1f897d
АвторДатаТекстtags
pig01.12.2008 14:46
А CheckRecipient понимает групповые операции? У меня такой уверенности нет.
imported
IA01.12.2008 15:18
А причем тут групповые операции, если проверяется отправитель, а он у нас один же !
imported
pig01.12.2008 18:11
Тогда объясните мне смысл вот этого:
S" From" S" *@emborg.*" CheckRecipient

Если звёздочка не символ групповой операции (aka wildcard), тогда я не представляю, о чём речь.
imported
Pg102.12.2008 19:31
Продолжу тему. Мне тоже так надо. Мало того, спамеры ставят один и тот же адрес в отправителя и получателя. Вот скрипт:
Pig.IsForwarded 0= [IF] " RCPTTO={RCPTTO} AND MAILFROM={MAILFROM}" STR@ 2492 LOG S" {RCPTTO}" S" {MAILFROM}" AnsiCMP-U 0= [IF] 2DUP "Удаление СПАМА от {MAILFROM} для {RCPTTO} в папку {Pig.Cached: Dirs[Mail]}\archive\spam" STR@ 2492 LOG " {Pig.Cached: Dirs[Mail]}\archive\spam\{MAILFROM}!{RANDOM-ID}.eml" STR@ MCONTENTFILENAME MoveFileWithCreatePath " Теперь удаляем" STR@ 2492 LOG DeleteCurrentFile \EOF [THEN] [THEN]


так вот условие S" {RCPTTO}" S" {MAILFROM}" AnsiCMP-U 0= почему то не срабатывает, хотя в лог пишется, что отправитель и получатель равны:
19:19:48 38 MContent: RCPTTO=astahova@domen.ru AND MAILFROM=astahova@domen.ru
imported
pig02.12.2008 20:06
Вы сравнивате две строковые константы {RCPTTO} и {MAILFROM}. Они, естественно, разные. Правильный код:
RCPTTO MAILFROM COMPARE-U 0=


Но, IMHO, ещё более правильно будет отсекать левых якобы собственных отправителей на подлёте с использованием локальных политик.
imported
pig02.12.2008 20:15
IA пишет: S" From" S" *@emborg.*" CheckRecipient

IMHO, вот так надо:
S" From" MessageHeader ParseEmail =~ *@emborg.*
imported
Pg103.12.2008 00:10
Ага, спасибо.

pig пишет:
Но, IMHO, ещё более правильно будет отсекать левых якобы собственных отправителей на подлёте с использованием локальных политик.


В том то и дело, что спамерами подставляются не "левые" адреса с нашего домена, а самые что ни на есть реальные. Почта принимается от провайдера по POP3. И как их отсекать по другому, кроме MContenta, мне в голову не приходит.
imported
IA05.12.2008 14:15
Вообщем правило в CustomMContent.rules.txt такое работает:

S" From" MessageHeader ParseEmail =~ *@emborg.*
[IF]
CLIENT Lists[LocalNetworks] IsInFile 0=
[IF]
    mcCHANGED 0!
    DeleteCurrentFile
[THEN]
[THEN]

Всем огромное спасибо!
imported
Dandy12.12.2008 07:50
IA пишет:
Я в CustomMContent.rules.txt сваял правило, но что-то не работает! Что тут не так:

Извините за задержку с ответом.
Дело в том, что CheckRecipient проверяет получателей (как собственно следует из имени слова), а именно заголовки: For: To: Cc:, а не отправителя From: как делаете вы.
imported
pig12.12.2008 11:18
То есть, если его попросить проверить содержимое заголовка From, он вообще принципиально откажется?

P.S. А что насчёт wildcards? Поддерживаются или нет?
imported
Dandy15.12.2008 12:08
pig пишет: То есть, если его попросить проверить содержимое заголовка From, он вообще принципиально откажется?

Если попросить проверить поле From: через CheckRecipient, то откажется принципиально (так как CheckRecipient проверят именно получателей!). А вот если проверить From: через:
S" From" MessageHeader
то будет все впорядке

Подробнее по CheckRecipient можно прочитать: тут.
pig пишет:
P.S. А что насчёт wildcards? Поддерживаются или нет?
поддерживаются конечно и "*" и "?"
imported
ND16.01.2009 14:29
pig пишет: Но, IMHO, ещё более правильно будет отсекать левых якобы собственных отправителей на подлёте с использованием локальных политик.


А можно пример, как при помощи локальных политик отсеивать "якобы собственных отправителей" ?
imported
pig16.01.2009 16:28
Да так же, как и не собственных — по сочетанию адреса отправителя с IP клиента и/или именем в HELO. В простых случаях просто набирается список разрешённых сочетаний, а под ним строка, где только шаблон email и категорический запрет (RF). У меня возможны варианты, поэтому просто по ходу дела добавляются запретные сочетания.
Ну, и есть совсем чистый сллучай, когда все свои сидят внутри локальной сети и снаружи быть не могут в принципе, для этого имеется специальная настройка — "Строгая локальность" в политиках SMTP.
imported
ND19.01.2009 11:45
pig пишет: Ну, и есть совсем чистый сллучай, когда все свои сидят внутри локальной сети и снаружи быть не могут в принципе, для этого имеется специальная настройка — "Строгая локальность" в политиках SMTP.

У меня как раз и есть — "совсем чистый случай". Все пользователи сидят в нескольких локальных сетях, которые перечислены в LocalNetworks.
Внешняя почта поступает только с одного адреса 192.168.1.37 (почтовик провайдера).
Включил настройку "Строгая локальность". Но изменений не дало, хорошо что в спам попадают эти письма.
10:41:59 163 Connection from: 192.168.1.37:24609 10:41:59 163 Connected 10:41:59 163 EHLO xxxxxxx 10:41:59 163 IP of HELO host doesn't match PeerIP 10:41:59 163 MAIL FROM:<user1@mydomain.com> 10:41:59 163 Local domain user user1, accepted 10:41:59 163 RCPT TO:<user1@mydomain.com> 10:41:59 163 Local domain user, accepted 10:41:59 163 DATA 10:41:59 163 Message has been received completely, 3535 bytes size 10:41:59 163 Antispam POPfile/SpamProtexx/LibSD check detected spam (message class: spam) 10:41:59 163 Moved to folder: ..\DATA\mail\spam 10:41:59 163 Local sender: user1@mydomain.com, copied to archive folder: ..\DATA\mail\archive\2009-01\user1\out 10:42:00 163 Spam detected, delivery to user1@mydomain.com is prohibited, passed to folder: ..\DATA\mail\in\mydomain.com\spamadmin
imported
pig19.01.2009 14:25
Спасибо, посмотрю.

Посмотрел. Это наоборот на самом деле. Требовать от клиентов локальной сети пользоваться адресами только из локальных доменов. Извините, ввёл в заблуждение, сам уже забываю. Значит, только политиками.
Если доверенных сетей у SMTP-сервера нет (только локальные, для которых политики не проверяются), то можно вообще ограничиться одной строчкой. Правда, это будет непрозрачно для понимания.
imported
ND19.01.2009 17:07
Пробую задать правило в LocalSenderPolicy (запретить с 192.168.1.37 якобы локальных пользователей):
192.168.1.37;1;;;;*@mydomain.com;1;1;RF

Вроде начинает отказывать всем письмам с 192.168.1.37.
Как правильно задать правило ?
imported
pig19.01.2009 17:58
Тут инверсия не нужна.
192.168.1.37;0;;;;*@mydomain.com;0;0;RF
imported
Работает на Eserv/5.05567 (10.02.2020)