feat: relax email requirements (#7829)

The current email restrictions were put in place because of a security issue with sendmail (https://github.com/go-gitea/gitea/pull/17688). Remove this restriction and instead ensure that this security issue cannot happen with sendmail.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7829
Reviewed-by: Ellen Εμιλία Άννα Zscheile <fogti@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: famfo <famfo@famfo.xyz>
Co-committed-by: famfo <famfo@famfo.xyz>
This commit is contained in:
famfo 2025-05-22 12:20:25 +02:00 committed by Gusted
parent de1adf224d
commit dda37e86bd
11 changed files with 45 additions and 46 deletions

View file

@ -51,4 +51,28 @@ func Test_loadMailerFrom(t *testing.T) {
assert.Equal(t, "jane.doe@example.com", MailService.User)
assert.Equal(t, "y0u'll n3v3r gUess th1S!!1", MailService.Passwd)
})
t.Run("sendmail argument sanitization", func(t *testing.T) {
cfg, _ := NewConfigProviderFromData("")
sec := cfg.Section("mailer")
sec.NewKey("ENABLED", "true")
sec.NewKey("PROTOCOL", "sendmail")
sec.NewKey("SENDMAIL_ARGS", "-B 8BITMIME")
loadMailerFrom(cfg)
assert.Equal(t, []string{"-B", "8BITMIME", "--"}, MailService.SendmailArgs)
})
t.Run("empty sendmail args", func(t *testing.T) {
cfg, _ := NewConfigProviderFromData("")
sec := cfg.Section("mailer")
sec.NewKey("ENABLED", "true")
sec.NewKey("PROTOCOL", "sendmail")
sec.NewKey("SENDMAIL_ARGS", "")
loadMailerFrom(cfg)
assert.Equal(t, []string{"--"}, MailService.SendmailArgs)
})
}