فهرست منبع

write mime parsing errors to the log

flashmob 5 سال پیش
والد
کامیت
c0f1c32d38
1فایلهای تغییر یافته به همراه8 افزوده شده و 11 حذف شده
  1. 8 11
      backends/s_mime.go

+ 8 - 11
backends/s_mime.go

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