diff --git a/conn.go b/conn.go index cc0d93b..8e7015a 100644 --- a/conn.go +++ b/conn.go @@ -400,6 +400,9 @@ func (c *Conn) handleMail(arg string) { if err := c.Session().Mail(from, opts); err != nil { if smtpErr, ok := err.(*SMTPError); ok { c.WriteResponse(smtpErr.Code, smtpErr.EnhancedCode, smtpErr.Message) + if smtpErr.Code == 250 { + c.fromReceived = true + } return } c.WriteResponse(451, EnhancedCode{4, 0, 0}, err.Error()) @@ -488,6 +491,9 @@ func (c *Conn) handleRcpt(arg string) { if err := c.Session().Rcpt(recipient); err != nil { if smtpErr, ok := err.(*SMTPError); ok { c.WriteResponse(smtpErr.Code, smtpErr.EnhancedCode, smtpErr.Message) + if smtpErr.Code == 250 { + c.recipients = append(c.recipients, recipient) + } return } c.WriteResponse(451, EnhancedCode{4, 0, 0}, err.Error())