p_debugger.go 849 B

12345678910111213141516171819202122232425262728293031323334
  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(dc *DecoratorCallbacks) Decorator {
  9. var config *debuggerConfig
  10. dc.loader = 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. return func(c Processor) Processor {
  20. return ProcessorFunc(func(e *envelope.Envelope) (BackendResult, error) {
  21. if config.LogReceivedMails {
  22. mainlog.Infof("Mail from: %s / to: %v", e.MailFrom.String(), e.RcptTo)
  23. mainlog.Info("So, Headers are:", e.Header)
  24. }
  25. // continue to the next Processor in the decorator chain
  26. return c.Process(e)
  27. })
  28. }
  29. }