diff --git a/modules/setting/mailer.go b/modules/setting/mailer.go index 7324328ee30..e7cc812eef8 100644 --- a/modules/setting/mailer.go +++ b/modules/setting/mailer.go @@ -178,14 +178,25 @@ func newMailService() { // we want to warn if users use SMTP on a non-local IP; // we might as well take the opportunity to check that it has an IP at all - ips := tryResolveAddr(MailService.SMTPAddr) - if MailService.Protocol == "smtp" { - for _, ip := range ips { - if !ip.IsLoopback() { - log.Warn("connecting over insecure SMTP protocol to non-local address is not recommended") - break + // This check is not needed for sendmail + switch MailService.Protocol { + case "sendmail": + var err error + MailService.SendmailArgs, err = shellquote.Split(sec.Key("SENDMAIL_ARGS").String()) + if err != nil { + log.Error("Failed to parse Sendmail args: '%s' with error %v", sec.Key("SENDMAIL_ARGS").String(), err) + } + case "smtp", "smtps", "smtp+starttls", "smtp+unix": + ips := tryResolveAddr(MailService.SMTPAddr) + if MailService.Protocol == "smtp" { + for _, ip := range ips { + if !ip.IsLoopback() { + log.Warn("connecting over insecure SMTP protocol to non-local address is not recommended") + break + } } } + case "dummy": // just mention and do nothing } if MailService.From != "" { @@ -214,14 +225,6 @@ func newMailService() { MailService.EnvelopeFrom = parsed.Address } - if MailService.Protocol == "sendmail" { - var err error - MailService.SendmailArgs, err = shellquote.Split(sec.Key("SENDMAIL_ARGS").String()) - if err != nil { - log.Error("Failed to parse Sendmail args: %s with error %v", CustomConf, err) - } - } - log.Info("Mail Service Enabled") }