base.go 824 B

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