// make sure all your constructors call this one.
 // this will make the call to base.Send(MailMessage) the default behaviour.
 public CustomSmtpMailer()
 {
     _sendAction = delegate(MailMessage message) { Send(message); };
 }
 // customizes the SendMail(MailMessage) behaviour for testing purposes.
 internal CustomSmtpMailer(SendInternal sendAction)
 {
     _sendAction = sendAction;
 }