12345678910111213141516171819202122232425262728293031323334 |
- package backends
- import (
- "github.com/flashmob/go-guerrilla/envelope"
- )
- type debuggerConfig struct {
- LogReceivedMails bool `json:"log_received_mails"`
- }
- func Debugger(dc *DecoratorCallbacks) Decorator {
- var config *debuggerConfig
- dc.loader = func(backendConfig BackendConfig) error {
- configType := baseConfig(&debuggerConfig{})
- bcfg, err := ab.extractConfig(backendConfig, configType)
- if err != nil {
- return err
- }
- config = bcfg.(*debuggerConfig)
- return nil
- }
- return func(c Processor) Processor {
- return ProcessorFunc(func(e *envelope.Envelope) (BackendResult, error) {
- if config.LogReceivedMails {
- mainlog.Infof("Mail from: %s / to: %v", e.MailFrom.String(), e.RcptTo)
- mainlog.Info("So, Headers are:", e.Header)
- }
- // continue to the next Processor in the decorator chain
- return c.Process(e)
- })
- }
- }
|