diff --git a/smtpsrv/server.go b/smtpsrv/server.go index b5267e633b..c001ecd94c 100644 --- a/smtpsrv/server.go +++ b/smtpsrv/server.go @@ -2,12 +2,28 @@ package smtpsrv import ( "context" + "errors" + "fmt" "net" "time" "github.com/emersion/go-smtp" + "github.com/target/goalert/util/log" ) +// SMTPLogger implements the smtp.Logger interface using the main app Logger +type SMTPLogger struct { + logger *log.Logger +} + +func (l *SMTPLogger) Printf(format string, v ...interface{}) { + l.logger.Error(context.Background(), errors.New(fmt.Sprintf(format, v...))) +} + +func (l *SMTPLogger) Println(v ...interface{}) { + l.logger.Error(context.Background(), errors.New(fmt.Sprint(v...))) +} + // Server implements an SMTP server that creates alerts. type Server struct { cfg Config @@ -19,6 +35,7 @@ func NewServer(cfg Config) *Server { s := &Server{cfg: cfg} srv := smtp.NewServer(s) + srv.ErrorLog = &SMTPLogger{logger: cfg.Logger} srv.Domain = cfg.Domain srv.ReadTimeout = 10 * time.Second srv.WriteTimeout = 10 * time.Second