RPF is implemented against solve the dilemma of the anti-spam technologies. That is, SPF/Sender-ID is strong against ML but weak against forwarding while DomainKeys/DKIM is strong against forwarding but weak against ML. So, e-mail receiver would implement policy such that either result of SPF/Sender-ID or that of DomainKeys/DKIM is PASS, the server accepts the message.

RPF is written in Haskell without using libmilter. Comments, requests, and/or bug reports should be posted to github.