From d9b622c8ed199565260a0e0621a4853d2114cae0 Mon Sep 17 00:00:00 2001 From: CalciumIon <1808837298@qq.com> Date: Wed, 4 Dec 2024 22:08:47 +0800 Subject: [PATCH] fix: email panic --- common/email.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/common/email.go b/common/email.go index 72e8979c..5e4413ce 100644 --- a/common/email.go +++ b/common/email.go @@ -9,12 +9,20 @@ import ( "time" ) -func generateMessageID() string { +func generateMessageID() (string, error) { + split := strings.Split(SMTPAccount, "@") + if len(split) < 2 { + return "", fmt.Errorf("invalid SMTP account") + } domain := strings.Split(SMTPAccount, "@")[1] - return fmt.Sprintf("<%d.%s@%s>", time.Now().UnixNano(), GetRandomString(12), domain) + return fmt.Sprintf("<%d.%s@%s>", time.Now().UnixNano(), GetRandomString(12), domain), nil } func SendEmail(subject string, receiver string, content string) error { + id, err2 := generateMessageID() + if err2 != nil { + return err2 + } if SMTPFrom == "" { // for compatibility SMTPFrom = SMTPAccount } @@ -28,7 +36,7 @@ func SendEmail(subject string, receiver string, content string) error { "Date: %s\r\n"+ "Message-ID: %s\r\n"+ // 添加 Message-ID 头 "Content-Type: text/html; charset=UTF-8\r\n\r\n%s\r\n", - receiver, SystemName, SMTPFrom, encodedSubject, time.Now().Format(time.RFC1123Z), generateMessageID(), content)) + receiver, SystemName, SMTPFrom, encodedSubject, time.Now().Format(time.RFC1123Z), id, content)) auth := smtp.PlainAuth("", SMTPAccount, SMTPToken, SMTPServer) addr := fmt.Sprintf("%s:%d", SMTPServer, SMTPPort) to := strings.Split(receiver, ";")