From 0969e1bc714d887776eacb86ffdddfe8e6c12961 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 29 Sep 2015 11:59:26 -0700 Subject: [PATCH] PLT-470 Adding STMP server connection check --- utils/config.go | 1 + utils/mail.go | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/utils/config.go b/utils/config.go index 5d786699bb..764c81e0d4 100644 --- a/utils/config.go +++ b/utils/config.go @@ -151,6 +151,7 @@ func LoadConfig(fileName string) { } configureLog(&config.LogSettings) + TestConnection(&config) Cfg = &config SanitizeOptions = getSanitizeOptions(Cfg) diff --git a/utils/mail.go b/utils/mail.go index dd975155d2..f6fe1ce007 100644 --- a/utils/mail.go +++ b/utils/mail.go @@ -65,13 +65,34 @@ func newSMTPClient(conn net.Conn, config *model.Config) (*smtp.Client, *model.Ap return c, nil } +func TestConnection(config *model.Config) { + if !config.EmailSettings.SendEmailNotifications { + return + } + + conn, err1 := connectToSMTPServer(config) + if err1 != nil { + l4g.Error("SMTP server settings do not appear to be configured properly err=%v details=%v", err1.Message, err1.DetailedError) + return + } + defer conn.Close() + + c, err2 := newSMTPClient(conn, config) + if err2 != nil { + l4g.Error("SMTP connection settings do not appear to be configured properly err=%v details=%v", err2.Message, err2.DetailedError) + return + } + defer c.Quit() + defer c.Close() +} + func SendMail(to, subject, body string) *model.AppError { return SendMailUsingConfig(to, subject, body, Cfg) } func SendMailUsingConfig(to, subject, body string, config *model.Config) *model.AppError { - if !config.EmailSettings.SendEmailNotifications { + if !config.EmailSettings.SendEmailNotifications || len(config.EmailSettings.SMTPServer) == 0 { return nil }