package smtp // State ist einer der vier SMTP-Sitzungszustände dieser Implementierung // (RFC 5321 §3.3), Akzeptanzkriterium 1: Envelope wird schrittweise vor // der DATA-Annahme aufgebaut und geprüft. type State int const ( Greeting State = iota // vor HELO/EHLO Ready // nach HELO/EHLO, bereit für MAIL FROM MailFromSet // nach gültigem MAIL FROM, wartet auf RCPT TO RcptToSet // mind. ein gültiges RCPT TO, DATA erlaubt ) func (s State) String() string { switch s { case Greeting: return "GREETING" case Ready: return "READY" case MailFromSet: return "MAIL FROM SET" case RcptToSet: return "RCPT TO SET" default: return "unknown" } }