sendmail で送信ドメイン制限 2

sendmail -bt を使うよ。
http://www.google.co.jp/search?hl=ja&q=%22sendmail+-bt%22&lr=&btnG=Google+%E6%A4%9C%E7%B4%A2

テスト方法
参考
http://www.amy.hi-ho.ne.jp/~kanada/sendmail.html
http://www.wakhok.ac.jp/~kanayama/summer/02/site/node213.html

# sendmail -bt -Csendmail.cf
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,5,0 foo@example.co.jp
canonify           input: foo @ example . co . jp
Canonify2          input: foo < @ example . co . jp >
Canonify2        returns: foo < @ example . co . jp . >
canonify         returns: foo < @ example . co . jp . >
localaddr          input: foo < @ example . co . jp . >
localaddr        returns: foo < @ example . co . jp . >
parse              input: foo < @ example . co . jp . >
Parse0             input: foo < @ example . co . jp . >
Parse0           returns: foo < @ example . co . jp . >
Parse1             input: foo < @ example . co . jp . >
Mailertable        input: < : > foo < @ example . co . jp . >
Mailertable      returns: foo < @ example . co . jp . >
MailerToTriple     input: < relayhost . example . co . jp > foo < @ example . co . jp . >
MailerToTriple   returns: $# relay $@ relayhost . example . co . jp $: foo < @ example . co  jp . >
Parse1           returns: $# relay $@ relayhost . example . co . jp $: foo < @ example . co  jp . >
parse            returns: $# relay $@ relayhost . example . co . jp $: foo < @ example . co  jp . >
> 3,5,0 hoge@example.com
canonify           input: hoge @ example . com
Canonify2          input: hoge < @ example . com >
Canonify2        returns: hoge < @ example . com . >
canonify         returns: hoge < @ example . com . >
localaddr          input: hoge < @ example . com . >
localaddr        returns: hoge < @ example . com . >
parse              input: hoge < @ example . com . >
Parse0             input: hoge < @ example . com . >
Parse0           returns: hoge < @ example . com . >
Parse1             input: hoge < @ example . com . >
Mailertable        input: < example . com > hoge < @ example . com . >
MailerToTriple     input: < local : trash > hoge < @ example . com . >
CanonLocal         input: < trash > hoge < @ example . com . >
CanonLocal       returns: $# local $@ hoge @ example . com $: trash
MailerToTriple   returns: $# local $@ hoge @ example . com $: trash
Mailertable      returns: $# local $@ hoge @ example . com $: trash
Parse1           returns: $# local $@ hoge @ example . com $: trash
parse            returns: $# local $@ hoge @ example . com $: trash
# sendmail -bt -Csendmail.cf
> 3,5,0 hoge@example.com
> 3,5,0 foo@example.co.jp
とするか、
> /parse hoge@example.com
> /parse foo@example.co.jp
としてもテストできそう?

うまくいかない。

mailertableの更新しつつ色々…。

vi mailertable
makemap hash /etc/mail/mailertable < /etc/mail/mailertable

色々調査中…。

あ、いけたいけた。
mailertable の右辺の書き方がおかしかったわ…。
Postfixみたいにmailer(postfixで言うtransport)を省略できるかと思って ":" だけ書いてたけど、ちゃんと "smtp:" って書かないとダメでした。
結局、

example.co.jp           smtp:
.example.co.jp          smtp:
.                       local:trash

って書くことで希望を満たすことが出来た。

こんなケアレスミスに気付くまでにかなりの時間を要してしまった。
まずPostfixでの慣れの問題がひとつ、sendmailは難しいものという思い込みがひとつあったと思う。
今回はOreillyの英語版 sendmail 2nd edition Revised & Updated の Chapter 19.6 Alphabetized m4 Macros の 19.6.14 FEATURE(mailertable) の項を読んでやっと理解出来た。
やっぱオライリーsendmail本買おうかなぁ…。