From 18b0ea571aa1d76af5f250583285a072d2b64c4a Mon Sep 17 00:00:00 2001
From: Reto Brunner <reto@labrat.space>
Date: Sun, 8 Nov 2020 13:39:51 +0100
Subject: [PATCH] lib/parse: use go-message msgid parsing if it succeeds

---
 worker/lib/parse.go | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/worker/lib/parse.go b/worker/lib/parse.go
index 9fa539f..78525d0 100644
--- a/worker/lib/parse.go
+++ b/worker/lib/parse.go
@@ -129,9 +129,13 @@ func parseEnvelope(h *mail.Header) (*models.Envelope, error) {
 	if err != nil {
 		return nil, fmt.Errorf("could not read subject: %v", err)
 	}
-	msgID, err := h.Text("message-id")
+	msgID, err := h.MessageID()
 	if err != nil {
-		return nil, fmt.Errorf("could not read message id: %v", err)
+		//proper parsing failed, so fall back to whatever is there
+		msgID, err = h.Text("message-id")
+		if err != nil {
+			return nil, err
+		}
 	}
 	date, err := parseDate(h)
 	if err != nil {