А не поделится ли кто опытом решения таких вот ситуаций?
Есть uucp relay, на котором масса клиентов с uupc/ache. Этот uupc отправляет
письмо с обратным адресом вида system!domain!user. Стандартный sendmail
дописывает "@${uucprelay}", и письмо уходит с таким envelope-from. А потом
возникают двойные отлупы вида:
----- The following addresses had permanent fatal errors -----
<jamesua!james.vsmu.vinnica.ua!james@fantom.vsmu.vinnica.ua>
----- Transcript of session follows -----
... while talking to mail.vsmu.vinnica.ua.:
>>> RCPT To:<jamesua!james.vsmu.vinnica.ua!james@fantom.vsmu.vinnica.ua>
<<< 550 <jamesua!james.vsmu.vinnica.ua!james@fantom.vsmu.vinnica.ua>... Relaying denied
550 <jamesua!james.vsmu.vinnica.ua!james@fantom.vsmu.vinnica.ua>... User unknown
когда письмо идет по MX uucp-релея на другой хост, на котором sendmail
8.9, естественно, не допускающий релеинг на ${anysystem}.UUCP ;(
Таких отлупов в день до 10 штук, с двух десятков разных мест (пример выше -
просто один из типичных). На своем релее я частично поборол это патчем
такого вида:
=== cut here ===
*** kozlik.cf Fri May 21 22:46:08 1999
--- 1.cf Wed Jun 9 17:05:25 1999
***************
*** 1306,1311 ****
--- 1306,1314 ----
# output fake domains as user%fake@relay
+ ## S51 here. Netch's hack - convert from uucp when system matches domain
+ R$+!$+<@$-.UUCP.> $: $>NormalizeUU $1!$2<@$3.UUCP.>
+
# do UUCP heuristics; note that these are shared with UUCP mailers
R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
***************
*** 1497,1499 ****
--- 1500,1515 ----
S=12/31, R=23/21, M=2000000,
T=X-UUCP/X-UUCP/X-Unix,
A=/usr/bin/uux - -r -z -a$g $h!rmail ($u)
+
+ ## Translate domain!user<@system.UUCP.> to user<@domain>, if domain
+ ## matches the system
+
+ #Kreg_1_2 program -o /usr/local/libexec/sm_1_2
+ Kreg_1_2 regex -a@MATCH -m (.*)@\1
+
+ SNormalizeUU
+ R $+!$+ < @$-.UUCP. > $: <$( mailertable $1 $)> $1!$2<@$3.UUCP.>
+ R <> $* $@ $1
+ R <$-:$+>$+!$+<@$-.UUCP.> $: <$( reg_1_2 $2@$5 $)> $3!$4<@$5.UUCP.>
+ R <$*@MATCH> $+!$+<@$-.UUCP.> $@ $3<@$2>
+ R <$*>$* $@ $2
=== end cut ===
который проверяет соответствие домена в записи system!domain!user системе по
mailertable и, если соответствует - сворачивает запись в user@domain.
Но это хорошо далеко не всегда (мало того, что запись в mailertable на домен
с поддоменами не проверяет, ну это поправимо...
если в пришедшем bang-path более длинный путь, чем три звена, получается
опять же bang-path перед '@', и непонятно, во что его скручивать). Кто-нибудь
решал подобное?
-- --
Valentin Nechayev
netch@lucky.net
II:LDXIII/MCMLXXII.CCC
=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
Archive is accessible on http://info.east.ru/rus/inetadm.html