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, "") }