From a9f4dada321841d3611b15775307228b34e7793f Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Thu, 28 Nov 2024 12:14:03 +0100 Subject: [PATCH] feat: allow empty user and password in SMTP configuration --- backend/internal/service/email_service.go | 21 ++++++++++++------- .../forms/app-config-email-form.svelte | 4 ++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/backend/internal/service/email_service.go b/backend/internal/service/email_service.go index 8f458470..51bdb842 100644 --- a/backend/internal/service/email_service.go +++ b/backend/internal/service/email_service.go @@ -118,14 +118,19 @@ func SendEmail[V any](srv *EmailService, toEmail email.Address, template email.T return fmt.Errorf("failed to connect to SMTP server: %w", err) } - // Set up the authentication - auth := smtp.PlainAuth("", - srv.appConfigService.DbConfig.SmtpUser.Value, - srv.appConfigService.DbConfig.SmtpPassword.Value, - srv.appConfigService.DbConfig.SmtpHost.Value, - ) - if err := client.Auth(auth); err != nil { - return fmt.Errorf("failed to authenticate SMTP client: %w", err) + smtpUser := srv.appConfigService.DbConfig.SmtpUser.Value + smtpPassword := srv.appConfigService.DbConfig.SmtpPassword.Value + + // Set up the authentication if user or password are set + if smtpUser != "" || smtpPassword != "" { + auth := smtp.PlainAuth("", + srv.appConfigService.DbConfig.SmtpUser.Value, + srv.appConfigService.DbConfig.SmtpPassword.Value, + srv.appConfigService.DbConfig.SmtpHost.Value, + ) + if err := client.Auth(auth); err != nil { + return fmt.Errorf("failed to authenticate SMTP client: %w", err) + } } // Send the email diff --git a/frontend/src/routes/settings/admin/application-configuration/forms/app-config-email-form.svelte b/frontend/src/routes/settings/admin/application-configuration/forms/app-config-email-form.svelte index 6c0b5a38..71e4f07d 100644 --- a/frontend/src/routes/settings/admin/application-configuration/forms/app-config-email-form.svelte +++ b/frontend/src/routes/settings/admin/application-configuration/forms/app-config-email-form.svelte @@ -35,8 +35,8 @@ const formSchema = z.object({ smtpHost: z.string().min(1), smtpPort: z.number().min(1), - smtpUser: z.string().min(1), - smtpPassword: z.string().min(1), + smtpUser: z.string(), + smtpPassword: z.string(), smtpFrom: z.string().email(), smtpTls: z.boolean(), smtpSkipCertVerify: z.boolean()