Eu entendi! Note que parece que o recuo antes do regex e espaço de linha extra antes de LOCAL_CONFIG no arquivo sendmail.mc é necessário. Dica do chapéu para este post do blog XIITEC para algumas dicas como bem como o livro de receitas do sendmail .
LOCAL_CONFIG
# this will block subdomain.domain.us or subdomain.domain.info but not domain.us or domain.info
Kcheckaddress regex -a@MATCH
[a-zA-Z_0-9.-]+<@[a-zA-Z_0-9-]+?\.+[a-zA-Z_0-9.-]+?\.(us|info)
HMessage-Id: $>CheckMessageId
SCheckMessageId
R< $+ @ $+ > $@ OK
R$* $#error $: "553 Header error"
LOCAL_RULESETS
SLocal_check_mail
R$* $: $>Parse0 $>3 $1
R$+ $: $(checkaddress $1 $)
R@MATCH $#error $: "553 Your Domain is Blocked for Unsolicited Mail"
Aqui está a prova de que funciona:
sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> Local_check_mail [email protected]
Local_check_mail input: 123 @ aol . com
canonify input: 123 @ aol . com
Canonify2 input: 123 < @ aol . com >
Canonify2 returns: 123 < @ aol . com . >
canonify returns: 123 < @ aol . com . >
Parse0 input: 123 < @ aol . com . >
Parse0 returns: 123 < @ aol . com . >
Local_check_mail returns: 123 < @ aol . com . >
> Local_check_mail [email protected]
Local_check_mail input: 123 @ aol . com . us
canonify input: 123 @ aol . com . us
Canonify2 input: 123 < @ aol . com . us >
Canonify2 returns: 123 < @ aol . com . us >
canonify returns: 123 < @ aol . com . us >
Parse0 input: 123 < @ aol . com . us >
Parse0 returns: 123 < @ aol . com . us >
Local_check_mail returns: $# error $: "553 Your Domain is Blocked for Unsolicited Mail"