1
0

email.go 1005 B

1234567891011121314151617181920212223242526272829303132333435
  1. package channel
  2. import (
  3. "errors"
  4. "fmt"
  5. "message-pusher/common"
  6. "message-pusher/model"
  7. "strings"
  8. )
  9. func SendEmailMessage(message *model.Message, user *model.User, channel_ *model.Channel) error {
  10. if message.To != "" {
  11. if user.SendEmailToOthers != common.SendEmailToOthersAllowed && user.Role < common.RoleAdminUser {
  12. return errors.New("没有权限发送邮件给其他人,请联系管理员为你添加该权限")
  13. }
  14. user.Email = message.To
  15. }
  16. if user.Email == "" {
  17. return errors.New("未配置邮箱地址")
  18. }
  19. subject := message.Title
  20. content := message.Content
  21. if subject == common.SystemName || subject == "" {
  22. subject = message.Description
  23. } else {
  24. content = fmt.Sprintf("%s\n\n%s", message.Description, message.Content)
  25. }
  26. var err error
  27. message.HTMLContent, err = common.Markdown2HTML(content)
  28. if err != nil {
  29. common.SysLog(err.Error())
  30. }
  31. user.Email = strings.ReplaceAll(user.Email, "|", ";")
  32. return common.SendEmail(subject, user.Email, message.HTMLContent)
  33. }