Browse Source

write mime parsing errors to the log

flashmob 5 years ago
parent
commit
c0f1c32d38
1 changed files with 8 additions and 11 deletions
  1. 8 11
      backends/s_mime.go

+ 8 - 11
backends/s_mime.go

@@ -1,7 +1,6 @@
 package backends
 package backends
 
 
 import (
 import (
-	"fmt"
 	"github.com/flashmob/go-guerrilla/mail"
 	"github.com/flashmob/go-guerrilla/mail"
 	"github.com/flashmob/go-guerrilla/mail/mime"
 	"github.com/flashmob/go-guerrilla/mail/mime"
 )
 )
@@ -27,10 +26,9 @@ func init() {
 func StreamMimeAnalyzer() *StreamDecorator {
 func StreamMimeAnalyzer() *StreamDecorator {
 
 
 	sd := &StreamDecorator{}
 	sd := &StreamDecorator{}
-	sd.Decorate =
 
 
+	sd.Decorate =
 		func(sp StreamProcessor, a ...interface{}) StreamProcessor {
 		func(sp StreamProcessor, a ...interface{}) StreamProcessor {
-
 			var (
 			var (
 				envelope *mail.Envelope
 				envelope *mail.Envelope
 				parseErr error
 				parseErr error
@@ -42,18 +40,20 @@ func StreamMimeAnalyzer() *StreamDecorator {
 			}))
 			}))
 
 
 			Svc.AddShutdowner(ShutdownWith(func() error {
 			Svc.AddShutdowner(ShutdownWith(func() error {
-				fmt.Println("shutdownewr")
-				//_ = parser.Close()
+				if err := parser.Close(); err != nil {
+					Log().WithError(err).Error("error when closing parser in mimeanalyzer")
+				}
+				parser = nil
 				return nil
 				return nil
 			}))
 			}))
 
 
 			sd.Open = func(e *mail.Envelope) error {
 			sd.Open = func(e *mail.Envelope) error {
+				parser.Open()
 				envelope = e
 				envelope = e
 				return nil
 				return nil
 			}
 			}
 
 
 			sd.Close = func() error {
 			sd.Close = func() error {
-
 				if parseErr == nil {
 				if parseErr == nil {
 					_ = parser.Close()
 					_ = parser.Close()
 					return nil
 					return nil
@@ -63,22 +63,19 @@ func StreamMimeAnalyzer() *StreamDecorator {
 			}
 			}
 
 
 			return StreamProcessWith(func(p []byte) (int, error) {
 			return StreamProcessWith(func(p []byte) (int, error) {
-				_ = envelope
-
 				if _, ok := envelope.Values["MimeParts"]; !ok {
 				if _, ok := envelope.Values["MimeParts"]; !ok {
 					envelope.Values["MimeParts"] = &parser.Parts
 					envelope.Values["MimeParts"] = &parser.Parts
 				}
 				}
-
 				if parseErr == nil {
 				if parseErr == nil {
 					parseErr = parser.Parse(p)
 					parseErr = parser.Parse(p)
 					if parseErr != nil {
 					if parseErr != nil {
-						Log().WithError(parseErr).Error("mime parse error")
+						Log().WithError(parseErr).Error("mime parse error in mimeanalyzer")
 					}
 					}
 				}
 				}
-
 				return sp.Write(p)
 				return sp.Write(p)
 			})
 			})
 		}
 		}
 
 
 	return sd
 	return sd
+
 }
 }