On 19 Feb 2002, Dirk Koopman wrote:
> And there is no 'better'[tm] way of doing it (for 3.3x) than:
That doesn't do it!
> reject_illegal_char_relay:
> driver = smartuser
> no_verify
> condition = ${if match{$local_part}{[\\@%!/|]}{yes}}
> new_address = :fail: rejected illegal character in local_part attempt
That will fail those addresses with that error message when delivering
messages that do not arrive over SMTP. (That is, locally generated
messages.)
As you have no_verify set, that director won't run when verifying
incoming recipients at SMTP time, so it won't apply. The next director
will then get the address:
> # this director sends locally delivered stuff thru spam assassin
> send_to_spamc:
> driver = smartuser
> transport = spam_scanner
> condition = ${if eq {$received_protocol}{spam-ok}{no}{yes}}
As it is smartuser, and you have not set no_verify, it will always be
successful. All local parts will verify. Thus, you haven't succeeded in
doing what you want.
Personally, I would remove the first director, unless you are worried
about your local users using these addresses, and add "no_verify" to the
second director so that whatever follows (the localuser director ISTR)
will reject unknown local parts at verify time.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.