func NewMailClient(cfg config.Config) (MailClient, error) { switch cfg.OptEmailService() { case "none": return NewNoOpMailClient() case "sendgrid": username := cfg.OptSendgridUsername() secret := cfg.OptSendgridSecretKey() return NewSendGridMailClient(username, secret) default: return nil, fmt.Errorf("Unsupported mail service: %s", cfg.OptEmailService()) } }