fix: use title as email's subject if given

This commit is contained in:
JustSong 2023-05-09 16:40:05 +08:00
parent 93b19b7fbc
commit fa166df5ac
2 changed files with 14 additions and 9 deletions

View File

@ -2,6 +2,7 @@ package channel
import ( import (
"errors" "errors"
"fmt"
"message-pusher/common" "message-pusher/common"
"message-pusher/model" "message-pusher/model"
) )
@ -16,16 +17,17 @@ func SendEmailMessage(message *model.Message, user *model.User, channel_ *model.
if user.Email == "" { if user.Email == "" {
return errors.New("未配置邮箱地址") return errors.New("未配置邮箱地址")
} }
subject := message.Description subject := message.Title
if subject == "" { content := message.Content
subject = message.Title if subject == common.SystemName || subject == "" {
subject = message.Description
} else {
content = fmt.Sprintf("描述:%s\n\n%s", message.Description, message.Content)
} }
if message.Content != "" { var err error
var err error message.HTMLContent, err = common.Markdown2HTML(content)
message.HTMLContent, err = common.Markdown2HTML(message.Content) if err != nil {
if err != nil { common.SysLog(err.Error())
common.SysLog(err.Error())
}
} }
return common.SendEmail(subject, user.Email, message.HTMLContent) return common.SendEmail(subject, user.Email, message.HTMLContent)
} }

View File

@ -144,6 +144,9 @@ func Max(a int, b int) int {
} }
func Markdown2HTML(markdown string) (HTML string, err error) { func Markdown2HTML(markdown string) (HTML string, err error) {
if markdown == "" {
return "", nil
}
var buf bytes.Buffer var buf bytes.Buffer
err = goldmark.Convert([]byte(markdown), &buf) err = goldmark.Convert([]byte(markdown), &buf)
if err != nil { if err != nil {