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

Исходное сообщение
"sendmail - x-mailer"

Отправлено _John_ , 05-Дек-08 09:48 
Здравствуйте,
есть ли возможность в sendmail (или сторонними программами) проверить заголовок письма, и если x-mailer не совпадает с заданной строкой / строками отбросить его?

Содержание

Сообщения в этом обсуждении
"sendmail - x-mailer"
Отправлено Medlar , 05-Дек-08 10:52 
есть
покажите заголовок письма и шаблон поиска

"sendmail - x-mailer"
Отправлено _John_ , 05-Дек-08 12:54 
>есть
>покажите заголовок письма и шаблон поиска

Date: Wed, 3 Dec 2008 13:18:34 +0200
From: "test.ru" <test1@test.ru>
X-Mailer: The Bat! (v4.0.20) Professional
X-Priority: 3 (Normal)
Message-ID: <1444750073.20081203131834@ukr.net>
To: test@test.ru
Subject: =?windows-1251?B?x+Dq4Ocg6u7s7+7t5e3y7uI=?=
MIME-Version: 1.0
Content-Type: text/plain; charset=windows-1251
Content-Transfer-Encoding: quoted-printable


Надо искать строку X-Mailer: The Bat!, и если есть, то разрешать отправку.


"sendmail - x-mailer"
Отправлено Medlar , 05-Дек-08 12:59 
хммм
а за что впали в немилость остальные мэйлеры

"sendmail - x-mailer"
Отправлено _John_ , 05-Дек-08 13:19 
Хочу немного ограничить пользователей в выборе почтового клиента, outlook просто не люблю..

"sendmail - x-mailer"
Отправлено A Clockwork Orange , 05-Дек-08 13:28 
а как насчет того что outlook express входит в поставку и вроде как бесплатен, а за the bat надо отдельно платить?

"sendmail - x-mailer"
Отправлено _John_ , 05-Дек-08 14:35 
>а как насчет того что outlook express входит в поставку и вроде
>как бесплатен, а за the bat надо отдельно платить?

Он не дорогой, но гораздо более удобный и безопасный, имхо.


"sendmail - x-mailer"
Отправлено Medlar , 05-Дек-08 14:55 
1/ где прописана локальная сеть
в access или в relay-domains
2/ что планируете делать с почтой, если не указан X-Mailer:
пропускать или блокировать?

"sendmail - x-mailer"
Отправлено _John_ , 05-Дек-08 15:17 
>1/ где прописана локальная сеть
>в access или в relay-domains
>2/ что планируете делать с почтой, если не указан X-Mailer:
>пропускать или блокировать?

В relay-domains, если x-mailer не the bat, почту можно отбросить (или в отдельный почтовый ящик)


"sendmail - x-mailer"
Отправлено Medlar , 05-Дек-08 15:34 
HX-Mailer:                      $>CheckMailer
SCheckMailer
R$+                     $: $(storage {X-M} $@ OK $) $1
#Do not check if it is not relayable IP address or mail originated locally
R$*                     $: < $&{client_addr} > $| $1
R< 127.0.0.1 > $| $+    $@ OK
R< $=R $* > $| $+       $: $3
R<$+>$+                 $@ OK

#Do not check if it is  not smtp-authenticated mail
R$*                             $: < $&{auth_authen} > $| $1
R<> $| $+                       $@ OK
R$+ $| $+                       $: $2
RThe Bat $+                     $@ OK
R$+                             $#error $@ 5.0.0 $:"550 Please use The Bat mailer."

Scheck_eoh
R$*                             $: <$&{X-M}>
далее на ваше усмотрение: или
R<>                             $#error $@quarantine $:"550 Please use The Bat mailer."
или
R<>                             $#error $@ 5.0.0 $:"550 Please use The Bat mailer."


"sendmail - x-mailer"
Отправлено _John_ , 08-Дек-08 11:51 
>[оверквотинг удален]
>          
>      $#error $@ 5.0.0 $:"550 Please
>use The Bat mailer."
>
>Scheck_eoh
>R$*                             $: <$&{X-M}>
>далее на ваше усмотрение: или
>R<>                             $#error $@quarantine $:"550 Please use The Bat mailer."
>или
>R<>                             $#error $@ 5.0.0 $:"550 Please use The Bat mailer."

Спасибо.

Попробовал - ругается на  R$* $: <$&{X-M}>
invalid macro/class character -
Попробовал закомментировать, выдал -
5,3,0 rewrite: map storage not found


"sendmail - x-mailer"
Отправлено mEDLAR , 08-Дек-08 13:49 
Ну да, как всегда забыла я про Kstorage macro.
Хоть сегодня праздник, и работать нельзя, все же не буду вас задерживать

LOCAL_CONFIG
Kstorage macro
LOCAL_RULESETS
и далее все по тексту


"sendmail - x-mailer"
Отправлено mEDLAR , 08-Дек-08 14:48 
Немного оптимизировала, а то было 2 лишних прохода и не обрабатывалась совсем авторизованная почта.

LOCAL_CONFIG
Kstorage macro
# Индикатор обязательности или ненужности проверки. По умолчанию заголовок X-Mailer не проверяется
D{XM_check}NO

LOCAL_RULESETS

SLocal_check_mail
R$*                     $: < $&{client_addr} > $| $1
# Почта, исходящая с самого почтовика, проверке не подвергается
R< 127.0.0.1 > $| $+    $@ OK
# Почта, исходящая из локальной сети проверке подвергается
R< $=R $* > $| $+       $: $(storage {XM_check} $@ YES $) < $&{client_addr} > $| $1
R< $=R $* > $| $+       $@ OK

# Осталась почта, исходящая с внешних адресов. Она может оказаться неавторизованной.
R$*                             $: < $&{auth_authen} > $| $1
# Тогда заголовок X-Mailer не нужно проверять - заканчиваем рулсет
R<> $| $+                       $@ OK

# Она может оказаться авторизованной. Тогда это наш клиент, и заголовок X-Mailer нужно проверить
R$+ $| $+            $:  $(storage {XM_check} $@ YES $)


HX-Mailer:                      $>CheckMailer
SCheckMailer
# Добавляем значение макроса XM_check, чтобы решить, стоит ли делать дальнейшую проверку
R$+                     $: <$&{XM_check}> $1
# проверяем состояние индикатора {XM_check}. Если NO - сразу заканчиваем рулсет.
R<NO>$+            $@ OK

# В противном случае сначала
# записываем в макрос X-M состояние заголовка X-Mailer.
# Если X-Mailer присутствует в заголовке письма, в макрос X-M запишется OK
# Если этот заголовок вовсе отсутствует, то макрос X-M будет пустой, так как
# рулсет SCheckMailer вовсе исполняться не будет при отсутствующем X-Mailer
R<YES>$+                     $: $(storage {X-M} $@ OK $) $1
# проверяем заголовок X-Mailer
RThe Bat $+                     $@ OK
R$+                             $#error $@ 5.0.0 $: <$&f>: "550 Please use The Bat mailer."

Scheck_eoh
# Снова вызываем значение макроса XM_check, чтобы решить, стоит ли делать дальнейшую проверку
R$+                     $: <$&{XM_check}>
R<NO>            $@ OK

# Не умудрился ли часом наш клиент отправить почту с отсутствующим заголовком X-Mailer
R$*                             $: <$&{X-M}>
# Нет - пропускаем
R<OK>                $@ OK
# Да, заголовк отсутствует. Далее на ваше усмотрение: или
R<>                             $#error $@quarantine $: <$&f>: "550 Please use The Bat mailer."
или
R<>                             $#error $@ 5.0.0 $: <$&f>: "550 Please use The Bat mailer."


"sendmail - x-mailer"
Отправлено _John_ , 09-Дек-08 10:16 
Спасибо большое вам за помощь, продолжает ругаться на строку:

# Не умудрился ли часом наш клиент отправить почту с отсутствующим заголовком X-Mailer
R$*                             $: <$&{X-M}>

Ошибка: invalid macro/class character -


"sendmail - x-mailer"
Отправлено _John_ , 09-Дек-08 10:18 
Спасибо большое вам за помощь, продолжает ругаться на строку:

# Не умудрился ли часом наш клиент отправить почту с отсутствующим заголовком X-Mailer
R$*                             $: <$&{X-M}>

Ошибка: invalid macro/class character -


"sendmail - x-mailer"
Отправлено Medlar , 09-Дек-08 10:47 
видимо не нравится дефис
попробуйте просто XM ВМЕСТО X-M

"sendmail - x-mailer"
Отправлено _John_ , 09-Дек-08 10:38 
>[оверквотинг удален]
>
># Не умудрился ли часом наш клиент отправить почту с отсутствующим заголовком
>X-Mailer
>R$*                             $: <$&{X-M}>
># Нет - пропускаем
>R<OK>                $@ OK
># Да, заголовк отсутствует. Далее на ваше усмотрение: или
>R<>                             $#error $@quarantine $: <$&f>: "550 Please use The Bat mailer."
>или
>R<>                             $#error $@ 5.0.0 $: <$&f>: "550 Please use The Bat mailer."