Backport #29347 by @carlosfelgueiras Fixes #27188. Introduces a check on the installation that tries to parse the FROM address. If it fails, shows a new error message to the user. Co-authored-by: Carlos Felgueiras <carlosfelgueiras@tecnico.ulisboa.pt> Co-authored-by: KN4CK3R <admin@oldschoolhack.me>tags/v1.21.7
smtp_addr = SMTP Host | smtp_addr = SMTP Host | ||||
smtp_port = SMTP Port | smtp_port = SMTP Port | ||||
smtp_from = Send Email As | smtp_from = Send Email As | ||||
smtp_from_invalid = The "Send Email As" address is invalid | |||||
smtp_from_helper = Email address Gitea will use. Enter a plain email address or use the "Name" <email@example.com> format. | smtp_from_helper = Email address Gitea will use. Enter a plain email address or use the "Name" <email@example.com> format. | ||||
mailer_user = SMTP Username | mailer_user = SMTP Username | ||||
mailer_password = SMTP Password | mailer_password = SMTP Password |
import ( | import ( | ||||
"fmt" | "fmt" | ||||
"net/http" | "net/http" | ||||
"net/mail" | |||||
"os" | "os" | ||||
"os/exec" | "os/exec" | ||||
"path/filepath" | "path/filepath" | ||||
} | } | ||||
if len(strings.TrimSpace(form.SMTPAddr)) > 0 { | if len(strings.TrimSpace(form.SMTPAddr)) > 0 { | ||||
if _, err := mail.ParseAddress(form.SMTPFrom); err != nil { | |||||
ctx.RenderWithErr(ctx.Tr("install.smtp_from_invalid"), tplInstall, &form) | |||||
return | |||||
} | |||||
cfg.Section("mailer").Key("ENABLED").SetValue("true") | cfg.Section("mailer").Key("ENABLED").SetValue("true") | ||||
cfg.Section("mailer").Key("SMTP_ADDR").SetValue(form.SMTPAddr) | cfg.Section("mailer").Key("SMTP_ADDR").SetValue(form.SMTPAddr) | ||||
cfg.Section("mailer").Key("SMTP_PORT").SetValue(form.SMTPPort) | cfg.Section("mailer").Key("SMTP_PORT").SetValue(form.SMTPPort) |