package smtp
import (
"log/slog"
"net"
"github.com/Queueue0/jums/internal/smtp/packets"
)
func Handle(c net.Conn) {
defer c.Close()
slog.Debug("handling connection...", "addr", c.RemoteAddr().String())
Send(packets.NewStatus(220, "Josh's Unremarkable Mail Server v0.0.0"), c)
s := NewSession(c)
for s.IsOpen() {
s.HandleNextLine()
}
}
func Send(p packets.Packet, c net.Conn) error {
slog.Debug("Sending packet", "to", c.RemoteAddr().String(), "msg", p.SafeString())
_, err := c.Write(p.Bytes())
return err
}