Fix validity of the FROM email address not being checked (#29347)

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: KN4CK3R <admin@oldschoolhack.me>
This commit is contained in:
Carlos Felgueiras 2024-02-24 00:02:14 +01:00 committed by GitHub
parent 08c1926e1c
commit 6f6120dfa8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 0 deletions

View File

@ -247,6 +247,7 @@ email_title = Email Settings
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

View File

@ -7,6 +7,7 @@ package install
import ( import (
"fmt" "fmt"
"net/http" "net/http"
"net/mail"
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
@ -419,6 +420,11 @@ func SubmitInstall(ctx *context.Context) {
} }
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)