mirror of
https://github.com/mgerb/tmail
synced 2026-01-09 01:12:47 +00:00
36 lines
581 B
Go
36 lines
581 B
Go
package smtpserver
|
|
|
|
import (
|
|
"bytes"
|
|
"net"
|
|
"net/mail"
|
|
|
|
mymail "github.com/mgerb/tmail/mail"
|
|
"github.com/mhale/smtpd"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func Start() {
|
|
log.Error(smtpd.ListenAndServe("0.0.0.0:25", mailHandler, "tmail", ""))
|
|
}
|
|
|
|
func mailHandler(origin net.Addr, from string, to []string, data []byte) {
|
|
msg, err := mail.ReadMessage(bytes.NewReader(data))
|
|
|
|
if err != nil {
|
|
log.Error(err)
|
|
return
|
|
}
|
|
|
|
subject := msg.Header.Get("Subject")
|
|
|
|
m := &mymail.Mail{
|
|
Content: string(data),
|
|
From: from,
|
|
To: to[0],
|
|
Subject: subject,
|
|
}
|
|
|
|
m.Save()
|
|
}
|