MailHog/smtp/server.go
2014-11-23 15:10:55 +00:00

36 lines
738 B
Go

package smtp
import (
"io"
"log"
"net"
"github.com/ian-kent/Go-MailHog/MailHog-Server/config"
"github.com/ian-kent/Go-MailHog/smtp/server"
)
func Listen(cfg *config.Config, exitCh chan int) *net.TCPListener {
log.Printf("[SMTP] Binding to address: %s\n", cfg.SMTPBindAddr)
ln, err := net.Listen("tcp", cfg.SMTPBindAddr)
if err != nil {
log.Fatalf("[SMTP] Error listening on socket: %s\n", err)
}
defer ln.Close()
for {
conn, err := ln.Accept()
if err != nil {
log.Printf("[SMTP] Error accepting connection: %s\n", err)
continue
}
defer conn.Close()
go server.Accept(
conn.(*net.TCPConn).RemoteAddr().String(),
io.ReadWriteCloser(conn),
cfg.Storage,
cfg.MessageChan,
cfg.Hostname,
)
}
}