Move smtp.RelayMessage into a new smtp.MTA interface.
[mailpopbox.git] / smtp.go
diff --git a/smtp.go b/smtp.go
index 90f0ec535a01a9f7cdf9ceb206f8f05017e0238e..5b6952d8a6928597f4615da320bbd04f34557961 100644 (file)
--- a/smtp.go
+++ b/smtp.go
@@ -25,6 +25,7 @@ func runSMTPServer(config Config, log *zap.Logger) <-chan ServerControlMessage {
                controlChan: make(chan ServerControlMessage),
                log:         log.With(zap.String("server", "smtp")),
        }
+       server.mta = smtp.NewDefaultMTA(&server, server.log)
        go server.run()
        return server.controlChan
 }
@@ -33,6 +34,8 @@ type smtpServer struct {
        config    Config
        tlsConfig *tls.Config
 
+       mta smtp.MTA
+
        log *zap.Logger
 
        controlChan chan ServerControlMessage
@@ -144,8 +147,7 @@ func (server *smtpServer) DeliverMessage(en smtp.Envelope) *smtp.ReplyLine {
 }
 
 func (server *smtpServer) RelayMessage(en smtp.Envelope) {
-       log := server.log.With(zap.String("id", en.ID))
-       go smtp.RelayMessage(server, en, log)
+       go server.mta.RelayMessage(en)
 }
 
 func (server *smtpServer) maildropForAddress(addr mail.Address) string {