Здравствуйте, Victor.
Вы писали 27 октября 2004 г., 21:50:00:
VU> полезно проверять все в sendmail -bt -d21.12
Да я вот только более-менее -bt пользоваться научился - чтобы и
макросы задать и рулесет нужный прогнать с параметрами. Кстати,
нормальный способ передать на вход разделитель $| существует ?
Сейчас (как ты здесь показывал) делаю тестовый рулесет:
STest
R $* <?> $* $: $>Local_check_relay $1 $| $2
и ему на вход параметры, разделенные <?>... Некрасиво.
VU> и контроллировать, чтобы хак в случае, когда не нужно реагировать на
VU> письмо, а передавать управление дальше, возвращал из правила то же
VU> значение, которое ему и передавалось.
Увы, отладка в голове подвела.
VU> кстати, а что за хак самодельный? в чем идея?
Да ты в курсе, мы в ru.unix.bsd на эту тему общались, ты и реализацию
подкинул. Суть в том, чтобы для писем, уходящих из локалки, прятать
адрес релея (для скрытия внутренней структуры сети) и заменять его на
localhost в Received:
Вот как это выглядит:
Received: from ds.dialup.bittu (localhost [127.0.0.1])
by bitty.balakovo.info with ESMTP id i9J7dUV8022660
for <test на balakovo.info>; Tue, 19 Oct 2004 11:39:31 +0400 (MSD)
хотя на самом деле ds.dialup.bittu имеет адрес 192.168.90.1.
Если кому-то будет интересно:
divert(-1)
#
# Convert host address in Received: to localhost for relayed domains
#
# Конвертируем адреса в хидере Received: для отправляемых изнутри писем
# Было: Received: from ds (ds.dialup.bittu [192.168.90.1])
# Стало: Received: from ds (localhost [127.0.0.1])
# Управление в access:
# HideIP:1.2.3.4 HIDE
# HideIP:1.2.3. HIDE
# HideIP:1.2. HIDE
#
dnl
divert(0)
VERSIONID(`$Id: masq_as_localhost.m4,v 8.12-0.02 2004/04/11 17:46:00 DS Exp $')dnl
divert(-1)
dnl
ifdef(`_ACCESS_TABLE_', `', `
errprint(`*** ERROR: HACK(masq_as_localhost) requires FEATURE(access_db)
')')
dnl
define(`confRECEIVED_HEADER',dnl
$?sfrom $s $.$?{hide_ip}(localhost [127.0.0.1])$|$?_($?s$|from $.$_)$.$.
$?{auth_type}(authenticated$?{auth_ssf} bits=${auth_ssf}$.)
$.by $j$?r with $r$. id $i$?{tls_version}
(version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u
for $u; $|;
$.$b)dnl
dnl
LOCAL_RULESETS
dnl
dnl
SLocal_check_relay
dnl workspace: {client_name} $| {client_addr}
R $* $| $+ $: <$(access HideIP:$2 $: ? $)> $1 $| $2
R <?> $* $| $-.$-.$-.$- $: <$(access HideIP:$2.$3.$4. $: ? $)> $1 $| $2.$3.$4.$5
R <?> $* $| $-.$-.$-.$- $: <$(access HideIP:$2.$3. $: ? $)> $1 $| $2.$3.$4.$5
R <HIDE> $* $: $(macro {hide_ip} $@ yes $) $1
R <$*> $* $: $2
--
С уважением,
Sergey mailto:ds на bittu.org.ru