Support SMTP along with ESMTP.
authorRobert Sesek <rsesek@bluestatic.org>
Mon, 12 Dec 2016 07:01:03 +0000 (02:01 -0500)
committerRobert Sesek <rsesek@bluestatic.org>
Mon, 12 Dec 2016 07:01:03 +0000 (02:01 -0500)
smtp/conn.go

index 30d48f8ec67d91b577560091f6675caf7a9fb0a9..f29b198607f773f49e10a980ead6627727b722c4 100644 (file)
@@ -41,7 +41,7 @@ func AcceptConnection(netConn net.Conn, server Server) error {
 
        var err error
 
-       conn.writeReply(250, fmt.Sprintf("%s ESMTP [%s] mailpopbox", server.Name(), netConn.LocalAddr().String()))
+       conn.writeReply(250, fmt.Sprintf("%s ESMTP [%s] (mailpopbox)", server.Name(), netConn.LocalAddr()))
 
        for {
                conn.line, err = conn.tp.ReadLine()
@@ -110,7 +110,15 @@ func (conn *connection) doEHLO() {
                return
        }
 
-       conn.writeReply(250, fmt.Sprintf("Hello %s, I am glad to meet you", conn.ehlo))
+       if cmd == "HELO" {
+               conn.writeReply(250, fmt.Sprintf("Hello %s [%s]", conn.ehlo, conn.remoteAddr))
+       } else {
+               conn.tp.PrintfLine("250-Hello %s [%s]", conn.ehlo, conn.remoteAddr)
+               if conn.server.TLSConfig() != nil {
+                       conn.tp.PrintfLine("250-STARTTLS")
+               }
+               conn.tp.PrintfLine("250 SIZE %d", 40960000)
+       }
 
        conn.state = stateInitial
 }