What do you think about having the Mailer holding the smtp.Client open between calls to Send()?  That may improve performance for callers that send one email at a time.