Browse Source

add logging from the dashboard branch

Flashmob 5 years ago
parent
commit
7a50712cb0
1 changed files with 25 additions and 2 deletions
  1. 25 2
      server.go

+ 25 - 2
server.go

@@ -372,9 +372,17 @@ const advertiseHelp = "250 HELP"
 
 
 // handleClient handles an entire client SMTP exchange
 // handleClient handles an entire client SMTP exchange
 func (s *server) handleClient(client *client) {
 func (s *server) handleClient(client *client) {
-	defer client.closeConn()
+	defer func() {
+		s.log().Fields(
+			"peer", client.RemoteIP,
+			"event", "disconnect",
+			"id":    client.ID,
+			"queuedID": client.QueuedID,
+		).Info("Disconnect client")
+		client.closeConn()
+	}()
 	sc := s.configStore.Load().(ServerConfig)
 	sc := s.configStore.Load().(ServerConfig)
-	s.log().Fields("peer", client.RemoteIP, "seq", client.ID).Info("handle client")
+	s.log().Fields("peer", client.RemoteIP, "id", client.ID, "event", "connect").Info("handle client")
 
 
 	// Initial greeting
 	// Initial greeting
 	greeting := fmt.Sprintf("220 %s SMTP Guerrilla(%s) #%d (%d) %s",
 	greeting := fmt.Sprintf("220 %s SMTP Guerrilla(%s) #%d (%d) %s",
@@ -508,6 +516,15 @@ func (s *server) handleClient(client *client) {
 				} else if client.parser.NullPath {
 				} else if client.parser.NullPath {
 					// bounce has empty from address
 					// bounce has empty from address
 					client.MailFrom = mail.Address{}
 					client.MailFrom = mail.Address{}
+				} else {
+					s.log().Fields(
+						"event",   "mailfrom",
+						"helo",    client.Helo,
+						"domain",  client.MailFrom.Host,
+						"address", client.RemoteIP,
+						"id":      client.ID,
+						"queuedID" : client.queuedID,
+					}).Info("mail from")
 				}
 				}
 				client.TransportType = smtp.TransportTypeUnspecified
 				client.TransportType = smtp.TransportTypeUnspecified
 				for i := range client.MailFrom.PathParams {
 				for i := range client.MailFrom.PathParams {
@@ -647,6 +664,12 @@ func (s *server) handleClient(client *client) {
 
 
 			if res.Code() < 300 {
 			if res.Code() < 300 {
 				client.messagesSent++
 				client.messagesSent++
+				s.log().Fields(
+					"event" : "received"
+					"helo":          client.Helo,
+					"remoteAddress": getRemoteAddr(client.conn),
+					"success":       true,
+				).Info("Received message")
 			}
 			}
 			client.sendResponse(res)
 			client.sendResponse(res)
 			client.state = ClientCmd
 			client.state = ClientCmd