mirror of
https://github.com/emersion/go-smtp
synced 2026-07-04 12:28:51 +00:00
Some SMTP extensions add new RCPT parameters. Add a struct to be able to support these.
61 lines
937 B
Go
61 lines
937 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"io"
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/emersion/go-smtp"
|
|
)
|
|
|
|
var addr = "127.0.0.1:1025"
|
|
|
|
func init() {
|
|
flag.StringVar(&addr, "l", addr, "Listen address")
|
|
}
|
|
|
|
type backend struct{}
|
|
|
|
func (bkd *backend) NewSession(c *smtp.Conn) (smtp.Session, error) {
|
|
return &session{}, nil
|
|
}
|
|
|
|
type session struct{}
|
|
|
|
func (s *session) AuthPlain(username, password string) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *session) Mail(from string, opts *smtp.MailOptions) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *session) Rcpt(to string, opts *smtp.RcptOptions) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *session) Data(r io.Reader) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *session) Reset() {}
|
|
|
|
func (s *session) Logout() error {
|
|
return nil
|
|
}
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
s := smtp.NewServer(&backend{})
|
|
|
|
s.Addr = addr
|
|
s.Domain = "localhost"
|
|
s.AllowInsecureAuth = true
|
|
s.Debug = os.Stdout
|
|
|
|
log.Println("Starting SMTP server at", addr)
|
|
log.Fatal(s.ListenAndServe())
|
|
}
|