I don't know of any systems that specifically do what you want, but the Mail::Audit module may be a good place to start. TPJ #18 has a pretty good article about Mail::Audit. You can find it at http://www.tpj.com/issues/vol5_2/tpj0502-0002.html
. Of course you need to be a subscriber to read the article.
I've been using a Mail::Audit based script for a while now as a replacement for procmail.
Of course, the real challenge here is not the filtering, the generation of the token or even the security, but how are you going to make the system usable for the people who wish to send you mail.