From a8c6c22e7f5b629db3e6f275028a23ee9a9a50f3 Mon Sep 17 00:00:00 2001 From: Biswa Kalyan Bhuyan Date: Sat, 24 May 2025 11:03:37 +0530 Subject: Add custom SMTP authentication support - Add SMTPUsername and SMTPPassword fields to Settings struct - Update DoSMTP method to use custom credentials when available - Add SMTP credential fields to all theme templates - Support independent username/password configuration Fixes authentication issues when using different SMTP credentials than login credentials, useful for app-specific passwords. --- plugins/base/public/settings.html | 37 +++++++++++++++++++++++++++++++++++++ plugins/base/routes.go | 10 ++++++++++ 2 files changed, 47 insertions(+) (limited to 'plugins') diff --git a/plugins/base/public/settings.html b/plugins/base/public/settings.html index 7acacb5..da950e4 100644 --- a/plugins/base/public/settings.html +++ b/plugins/base/public/settings.html @@ -9,9 +9,46 @@

Settings

+ + +

+ + + +

+ + + +
+ Use this if your SMTP server requires different credentials than your email login +

+ + + +
+ Use this if your SMTP server requires different credentials than your email login +

+ + + +

+

+
diff --git a/plugins/base/routes.go b/plugins/base/routes.go index 623a5cc..4640c93 100644 --- a/plugins/base/routes.go +++ b/plugins/base/routes.go @@ -1243,6 +1243,8 @@ type Settings struct { Signature string From string Subscriptions []string + SMTPUsername string + SMTPPassword string } func loadSettings(s alps.Store) (*Settings, error) { @@ -1268,6 +1270,12 @@ func (s *Settings) check() error { if len(s.From) > 512 { return fmt.Errorf("Full name must be 512 characters or fewer") } + if len(s.SMTPUsername) > 255 { + return fmt.Errorf("SMTP username must be 255 characters or fewer") + } + if len(s.SMTPPassword) > 255 { + return fmt.Errorf("SMTP password must be 255 characters or fewer") + } return nil } @@ -1311,6 +1319,8 @@ func handleSettings(ctx *alps.Context) error { } settings.Signature = ctx.FormValue("signature") settings.From = ctx.FormValue("from") + settings.SMTPUsername = ctx.FormValue("smtp_username") + settings.SMTPPassword = ctx.FormValue("smtp_password") params, err := ctx.FormParams() if err != nil { -- cgit v1.2.3-59-g8ed1b