From 0e0f06d9a6765c815277596dd5929ad42bac92d3 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 23 Aug 2024 21:02:07 +0530 Subject: [PATCH] [server] Handle invalid domain err --- server/pkg/utils/email/email.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/pkg/utils/email/email.go b/server/pkg/utils/email/email.go index f3ddbe67b1..57ce28f6e1 100644 --- a/server/pkg/utils/email/email.go +++ b/server/pkg/utils/email/email.go @@ -20,6 +20,11 @@ import ( "github.com/spf13/viper" ) +var knownInvalidEmailErrors = []string{ + "Invalid RCPT TO address provided", + "Invalid domain name", +} + // Send sends an email func Send(toEmails []string, fromName string, fromEmail string, subject string, htmlBody string, inlineImages []map[string]interface{}) error { smtpHost := viper.GetString("smtp.host") @@ -92,8 +97,11 @@ func sendViaSMTP(toEmails []string, fromName string, fromEmail string, subject s auth := smtp.PlainAuth("", smtpUsername, smtpPassword, smtpServer) err := smtp.SendMail(smtpServer+":"+smtpPort, auth, fromEmail, []string{toEmail}, []byte(emailMessage)) if err != nil { - if strings.Contains(err.Error(), "Invalid RCPT TO address provided") { - return stacktrace.Propagate(ente.NewBadRequestWithMessage(fmt.Sprintf("Invalid email %s", toEmail)), err.Error()) + errMsg := err.Error() + for _, knownError := range knownInvalidEmailErrors { + if strings.Contains(errMsg, knownError) { + return stacktrace.Propagate(ente.NewBadRequestWithMessage(fmt.Sprintf("Invalid email %s", toEmail)), errMsg) + } } return stacktrace.Propagate(err, "") }