Files
crockery/internal/smtp/session.go

29 lines
480 B
Go
Raw Normal View History

package smtp
import (
"io"
"log"
)
type Handler interface {
2018-03-08 00:17:44 +00:00
ServeSMTP(from string, to []string, r io.Reader) error
}
type Session struct {
2018-03-08 00:17:44 +00:00
ID string
Handler Handler
}
func (s *Session) Send(from string, to []string, r io.Reader) error {
log.Printf("session=%s from=%s to=%#v", s.ID, from, to)
2018-03-08 00:17:44 +00:00
// TODO: a chain of middlewares here
return s.Handler.ServeSMTP(from, to, r)
}
func (s *Session) Logout() error {
log.Printf("Ending session %s", s.ID)
return nil
}