base.go 877 B

1234567891011121314151617181920212223242526272829303132
  1. package hooks
  2. import (
  3. "pmail/dto/parsemail"
  4. "pmail/hooks/telegram_push"
  5. "pmail/hooks/web_push"
  6. "pmail/hooks/wechat_push"
  7. "pmail/utils/context"
  8. )
  9. type EmailHook interface {
  10. // SendBefore 邮件发送前的数据
  11. SendBefore(ctx *context.Context, email *parsemail.Email)
  12. // SendAfter 邮件发送后的数据,err是每个收信服务器的错误信息
  13. SendAfter(ctx *context.Context, email *parsemail.Email, err map[string]error)
  14. // ReceiveParseBefore 接收到邮件,解析之前的原始数据
  15. ReceiveParseBefore(email []byte)
  16. // ReceiveParseAfter 接收到邮件,解析之后的结构化数据
  17. ReceiveParseAfter(email *parsemail.Email)
  18. }
  19. // HookList
  20. var HookList []EmailHook
  21. // Init 这里注册hook对象
  22. func Init() {
  23. HookList = []EmailHook{
  24. wechat_push.NewWechatPushHook(),
  25. telegram_push.NewTelegramPushHook(),
  26. web_push.NewWebPushHook(),
  27. }
  28. }