Depending upon what services you are using this might already be setup. A spamfilter is not needed as much as a services package that won't allow the user's password to be their username or their email. I know that Anope provides this type of security.
I can confirm Anope does indeed provide both features requested. To disallow users from using the login name in their password you simply need to uncomment StrictPasswords in Anope's services.conf file. As for restricted one nick per email you will need to see the ns_maxemail module for Anope which comes packaged with Anope 1.7.* and make sure to set NSEmailMax in Anope's services.conf file if using that module.