feat(mail): sender display name (SMTP_FROM_NAME, default MindSift)
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m54s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m54s
A bare SMTP_FROM address gets the display name in the From header; a name already in SMTP_FROM wins, the envelope keeps the bare address. Also a field in the admin mail settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1632dd22c4
commit
56c1fa02e6
12 files changed
+86
-14
No files matched your search
@@ -270,3 +270,17 @@ func TestAuthLoginOnlyAndBothFailing(t *testing.T) {
|
||||
t.Fatalf("expected both mechanisms and the server hint in the error, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSenderAddressGetsDisplayName(t *testing.T) {
|
||||
cases := []struct{ raw, name, envelope, header string }{
|
||||
{"alerts@example.com", "MindSift", "alerts@example.com", `"MindSift" <alerts@example.com>`},
|
||||
{`"Mein Dienst" <alerts@example.com>`, "MindSift", "alerts@example.com", `"Mein Dienst" <alerts@example.com>`},
|
||||
{"alerts@example.com", "Büro Müller", "alerts@example.com", "=?utf-8?q?B=C3=BCro_M=C3=BCller?= <alerts@example.com>"},
|
||||
}
|
||||
for _, c := range cases {
|
||||
env, hdr, err := senderAddress(c.raw, c.name)
|
||||
if err != nil || env != c.envelope || hdr != c.header {
|
||||
t.Fatalf("senderAddress(%q, %q) = %q, %q, %v", c.raw, c.name, env, hdr, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user