setting smtp host requires valid tcp connection or panic

This commit is contained in:
dhax 2017-10-05 02:18:50 +02:00
parent c3e3b1344f
commit 38ff1e439c

View file

@ -35,26 +35,38 @@ func NewMailer() (*Mailer, error) {
return nil, err return nil, err
} }
smtpHost := viper.GetString("email_smtp_host") smtp := struct {
smtpPort := viper.GetInt("email_smtp_port") Host string
smtpUser := viper.GetString("email_smtp_user") Port int
smtpPass := viper.GetString("email_smtp_password") User string
Password string
}{
viper.GetString("email_smtp_host"),
viper.GetInt("email_smtp_port"),
viper.GetString("email_smtp_user"),
viper.GetString("email_smtp_password"),
}
s := &Mailer{ s := &Mailer{
client: gomail.NewPlainDialer(smtpHost, smtpPort, smtpUser, smtpPass), client: gomail.NewPlainDialer(smtp.Host, smtp.Port, smtp.User, smtp.Password),
templates: templates, templates: templates,
from: viper.GetString("email_from_address"), from: viper.GetString("email_from_address"),
fromName: viper.GetString("email_from_name"), fromName: viper.GetString("email_from_name"),
} }
if smtp.Host == "" {
log.Println("SMTP host not set => printing emails to stdout")
debug = true
return s, nil
}
d, err := s.client.Dial() d, err := s.client.Dial()
if err != nil { if err != nil {
log.Println("SMTP error:", err) return nil, err
log.Println("printing emails to stdout")
debug = true
} else { } else {
d.Close() d.Close()
} }
return s, nil return s, nil
} }