p_debugger.go 871 B

123456789101112131415161718192021222324252627282930313233
  1. package backends
  2. import (
  3. "github.com/flashmob/go-guerrilla/envelope"
  4. )
  5. type debuggerConfig struct {
  6. LogReceivedMails bool `json:"log_received_mails"`
  7. }
  8. func Debugger() Decorator {
  9. var config *debuggerConfig
  10. initFunc := Initialize(func(backendConfig BackendConfig) error {
  11. configType := baseConfig(&debuggerConfig{})
  12. bcfg, err := ab.extractConfig(backendConfig, configType)
  13. if err != nil {
  14. return err
  15. }
  16. config = bcfg.(*debuggerConfig)
  17. return nil
  18. })
  19. Service.AddInitializer(initFunc)
  20. return func(c Processor) Processor {
  21. return ProcessorFunc(func(e *envelope.Envelope) (BackendResult, error) {
  22. if config.LogReceivedMails {
  23. mainlog.Infof("Mail from: %s / to: %v", e.MailFrom.String(), e.RcptTo)
  24. mainlog.Info("So, Headers are:", e.Header)
  25. }
  26. // continue to the next Processor in the decorator chain
  27. return c.Process(e)
  28. })
  29. }
  30. }