From 0969e1bc714d887776eacb86ffdddfe8e6c12961 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 29 Sep 2015 11:59:26 -0700 Subject: PLT-470 Adding STMP server connection check --- utils/config.go | 1 + utils/mail.go | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'utils') diff --git a/utils/config.go b/utils/config.go index 5d786699b..764c81e0d 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 dd975155d..f6fe1ce00 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 } -- cgit v1.2.3-1-g7c22 From 8fadea44debd00c1babd12bff9eb2dd0a5d99370 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 29 Sep 2015 14:17:16 -0700 Subject: PLT-404 adding basic error checking to config file. --- utils/config.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'utils') diff --git a/utils/config.go b/utils/config.go index 5d786699b..b405f50b9 100644 --- a/utils/config.go +++ b/utils/config.go @@ -150,6 +150,10 @@ func LoadConfig(fileName string) { CfgFileName = fileName } + if err := config.IsValid(); err != nil { + panic("Error validating config file=" + fileName + ", err=" + err.Message) + } + configureLog(&config.LogSettings) Cfg = &config -- cgit v1.2.3-1-g7c22