何人かの人と議論して、Receiver Policy Framework の仕様を変えました。というわけで、 RPF v0.3 をリリースします。
v0.3 では、Milter ありきの設計になっています。こんなことが書けるようになりました。
$ip_white_list = 10.0.0.1; $ip_forwarding_list = 192.168.20.1, 192.168.30.1; $spammer_domain = "spammer.example.jp", "spammer.example.net"; $spammer_domain2 = "spammer.example.com"; $spf_fail = 'softfail', 'hardfail'; // #ip connect { accept: #ip == $ip_white_list; reject: #ip == 192.168.10.0/24, 2001:db8:100::/48; continue; } // #spf, #mail_from mail_from { reject: #spf == 'pass' && #mail_from == $spammer_domain; accept: #spf == 'pass'; accept: #spf == $spf_fail && #ip == $ip_forwarding_list; hold: #spf == 'softfail'; continue; } // #from, #pra, #sender_id, #dkim_from, #sig_dkim, #sig_domainkeys header { reject: #sender_id == 'pass' && #mail_from == $spammer_domain2; accept: #sender_id == 'pass'; reject: #mail_from == "dkim.example.jp" && #sig_dkim == No; continue; } // #dkim, #adsp body { accept: #dkim == 'pass'; reject: #dkim == 'fail' && #adsp == 'discard'; reject: #dkim != 'pass' && #from == "dkim.example.jp"; discard; }