Hi Chad,
Sounds good. Some of the existing email code in Email.cs is a bit messy because at one time we had an option to use DotNetOpenMail instead of the System.Net.Mail classes. I would implement it cleaner if I were doing it today but have been reluctant to remove some of the method names and signatures because it may break custom code that others have written against it.
I will give a little guidance on what I would like this to look like. I would implement the provider model and interfaces in the mojoPortal.Web project in a new folder at /Components/Email
I posted recently that I was thinking of moving the code from the mojoPortal.Net project, but again decided that would be too risky of breaking other people's code. But if we are going to have a provider model I would implement a new cleaner set of classes in the mojoPortal.Web project. Then after its working I'd be willing to make the changes in included features to use the new provider model. We can leave the existing stuff in the mojoPortal.Net project for backward compatibility with custom features but mark them as obsolete so that new development would be encouraged to use the new approach.
Best,
Joe