code: func New(
  	server,
  	port,
  	username,
  	password string,
  	rootCAs *x509.CertPool,
  	from mail.Address,
  	logger blog.Logger,
  	stats metrics.Scope,
  	reconnectBase time.Duration,
  	reconnectMax time.Duration) *MailerImpl {
  	return &MailerImpl{
  		dialer: &dialerImpl{
  			username: username,
  			password: password,
  			server:   server,
  			port:     port,
  			rootCAs:  rootCAs,
  		},
  		log:           logger,
  		from:          from,
  		clk:           clock.Default(),
  		csprgSource:   realSource{},
  		stats:         stats.NewScope("Mailer"),
  		reconnectBase: reconnectBase,
  		reconnectMax:  reconnectMax,
  	}
  }
docs: // New constructs a Mailer to represent an account on a particular mail
  // transfer agent.