Version 8.13.6Нужно чтобы определённый пользователь мог отсылать почту только внутри локального домена.
Попробовал через FEATURE(`compat_check')
Но с ней можно указать только что нельзя слать на определённый ящик, а запретить слать на всё, кроме трёх доменов (локальных) не проходит.
Compat:test@domain1.ru<@>*@* DISCARD
и прочие комбинации в access результата не дают.Потом попробовал через m4 (тут я пока плохо разбираюсь):
LOCAL_CONFIG
KSender regex -a@LIST restricted_userLOCAL_RULESETS
R$* $| $* $: $2 $| $>Parse0 $>3 $1
R$* $| $* $: $2 $| $>Parse0 $>3 $1
CheckLocalMail.
R$+<@$=w.> $| $+ $: $(Sender $1 $:$1 $) $| $3
R@LIST $| $+ $: $>CheckLocalMail $1
R$* $| $* $@ OKSCheckLocalMail
R$+<@$=w.> $@ OK
R$* $#error $: 553 Sorry, you cannot send a mail to non-local address. Please, contact to postmasterГоворит что бесконечный цикл в первом правиле compat_check и почта пользователя ходит свободно.
Ткните носом где я накосорезил.
Сам нашёл и косяк и другое решение. :))))Косяк в том, что у меня локальных доменов несколько. Решение:
LOCAL_CONFIG
F{Internal}/etc/mail/intern.only
F{Domains}/etc/mail/relay-domainsLOCAL_RULESETS
SLocal_check_rcpt
R$* $: $1 $| $>3 $&f
R$* $| <> $@ OK
R$* $| $={Internal} <@$=w.> $: $1
R$* $| $={Internal} <@$={Domains}> $: $1
R$* $| $={Internal} $: $1
R$* $| $* $@ OK
R$* $: $>3 $1
R$+<@$=w.> $@ OK
R$+<@$+> $#error $@ 5.1.8 $: "553 Sorry, you cannot send a mail to non-local address. Please, contact to postmaster."