summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2023-01-10 01:18:03 +0800
committerGitHub <noreply@github.com>2023-01-09 12:18:03 -0500
commit32999e251155efb8fc9c786613c6cd4f67e2494f (patch)
tree4365dcca54ab544532d9c8831989fddeca972f78 /modules
parent16d75966356676b0e643ec0b73e6f6c87191e91f (diff)
downloadgitea-32999e251155efb8fc9c786613c6cd4f67e2494f.tar.gz
gitea-32999e251155efb8fc9c786613c6cd4f67e2494f.zip
Don't lookup mail server when using sendmail (#22300) (#22383)
Fix #22287 backport #22300
Diffstat (limited to 'modules')
-rw-r--r--modules/setting/mailer.go31
1 files changed, 17 insertions, 14 deletions
diff --git a/modules/setting/mailer.go b/modules/setting/mailer.go
index 5a9b7054b9..e21d8c83cd 100644
--- a/modules/setting/mailer.go
+++ b/modules/setting/mailer.go
@@ -179,14 +179,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 != "" {
@@ -215,14 +226,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")
}