From d4927bc7e6fc2c887b559e0b85f84dc2f5af3128 Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Sun, 16 Apr 2017 20:17:58 +0100 Subject: [PATCH] fixes mailhog/MailHog#148 and fixes mailhog/storage#7 --- vendor/github.com/mailhog/data/message.go | 41 ++++++++++++-------- vendor/github.com/mailhog/storage/maildir.go | 6 +-- vendor/github.com/mailhog/storage/mongodb.go | 10 ++--- vendor/vendor.json | 12 +++--- 4 files changed, 38 insertions(+), 31 deletions(-) diff --git a/vendor/github.com/mailhog/data/message.go b/vendor/github.com/mailhog/data/message.go index 951f19a7..58e464bc 100644 --- a/vendor/github.com/mailhog/data/message.go +++ b/vendor/github.com/mailhog/data/message.go @@ -165,24 +165,31 @@ func (m *SMTPMessage) Bytes() io.Reader { // FromBytes returns a SMTPMessage from raw message bytes (as output by SMTPMessage.Bytes()) func FromBytes(b []byte) *SMTPMessage { msg := &SMTPMessage{} + var headerDone bool for _, l := range strings.Split(string(b), "\n") { - if strings.HasPrefix(l, "HELO:<") { - l = strings.TrimPrefix(l, "HELO:<") - l = strings.TrimSuffix(l, ">\r") - msg.Helo = l - continue - } - if strings.HasPrefix(l, "FROM:<") { - l = strings.TrimPrefix(l, "FROM:<") - l = strings.TrimSuffix(l, ">\r") - msg.From = l - continue - } - if strings.HasPrefix(l, "TO:<") { - l = strings.TrimPrefix(l, "TO:<") - l = strings.TrimSuffix(l, ">\r") - msg.To = append(msg.To, l) - continue + if !headerDone { + if strings.HasPrefix(l, "HELO:<") { + l = strings.TrimPrefix(l, "HELO:<") + l = strings.TrimSuffix(l, ">\r") + msg.Helo = l + continue + } + if strings.HasPrefix(l, "FROM:<") { + l = strings.TrimPrefix(l, "FROM:<") + l = strings.TrimSuffix(l, ">\r") + msg.From = l + continue + } + if strings.HasPrefix(l, "TO:<") { + l = strings.TrimPrefix(l, "TO:<") + l = strings.TrimSuffix(l, ">\r") + msg.To = append(msg.To, l) + continue + } + if strings.TrimSpace(l) == "" { + headerDone = true + continue + } } msg.Data += l + "\n" } diff --git a/vendor/github.com/mailhog/storage/maildir.go b/vendor/github.com/mailhog/storage/maildir.go index 5f09ffb3..d1025494 100644 --- a/vendor/github.com/mailhog/storage/maildir.go +++ b/vendor/github.com/mailhog/storage/maildir.go @@ -85,7 +85,7 @@ func (maildir *Maildir) Search(kind, query string, start, limit int) (*data.Mess switch kind { case "to": for _, t := range msg.To { - if strings.Contains(t.Mailbox+"@"+t.Domain, query) { + if strings.Contains(strings.ToLower(t.Mailbox+"@"+t.Domain), query) { if start > matched { matched++ break @@ -95,7 +95,7 @@ func (maildir *Maildir) Search(kind, query string, start, limit int) (*data.Mess } } case "from": - if strings.Contains(msg.From.Mailbox+"@"+msg.From.Domain, query) { + if strings.Contains(strings.ToLower(msg.From.Mailbox+"@"+msg.From.Domain), query) { if start > matched { matched++ break @@ -103,7 +103,7 @@ func (maildir *Maildir) Search(kind, query string, start, limit int) (*data.Mess filteredMessages = append(filteredMessages, *msg) } case "containing": - if strings.Contains(msg.Raw.Data, query) { + if strings.Contains(strings.ToLower(msg.Raw.Data), query) { if start > matched { matched++ break diff --git a/vendor/github.com/mailhog/storage/mongodb.go b/vendor/github.com/mailhog/storage/mongodb.go index 788e2684..6e506fa3 100644 --- a/vendor/github.com/mailhog/storage/mongodb.go +++ b/vendor/github.com/mailhog/storage/mongodb.go @@ -1,10 +1,10 @@ package storage import ( + "log" "github.com/mailhog/data" "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" - "log" ) // MongoDB represents MongoDB backed storage backend @@ -54,10 +54,10 @@ func (mongo *MongoDB) Search(kind, query string, start, limit int) (*data.Messag var count = 0 var field = "raw.data" switch kind { - case "to": - field = "raw.to" - case "from": - field = "raw.from" + case "to": + field = "raw.to" + case "from": + field = "raw.from" } err := mongo.Collection.Find(bson.M{field: bson.RegEx{Pattern: query, Options: "i"}}).Skip(start).Limit(limit).Sort("-created").Select(bson.M{ "id": 1, diff --git a/vendor/vendor.json b/vendor/vendor.json index 732ac114..fc336aa2 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -123,10 +123,10 @@ "revisionTime": "2017-04-16T18:44:30Z" }, { - "checksumSHA1": "ZhN2RVIK/L9LO9WGjducyi2buIk=", + "checksumSHA1": "ucMoXRa6ccPO5FyBzhey+N+IOsA=", "path": "github.com/mailhog/data", - "revision": "98fee9be8f0ca761ad40016ff0dfb4e4d81e2aa8", - "revisionTime": "2016-08-10T07:45:39Z" + "revision": "024d554958b5bea5db220bfd84922a584d878ded", + "revisionTime": "2017-04-16T19:13:44Z" }, { "checksumSHA1": "vyMXU+/pSliAx1yRf6YdKRhF9Ik=", @@ -147,10 +147,10 @@ "revisionTime": "2016-11-19T23:01:07Z" }, { - "checksumSHA1": "VFMqtv5B8sXJR50Rwn21jjJZw3E=", + "checksumSHA1": "Kd53/4cZ1KNfatXBgCg4VWzowis=", "path": "github.com/mailhog/storage", - "revision": "426662792547f066565458d62f52cb05fabc5535", - "revisionTime": "2016-11-15T21:39:50Z" + "revision": "970ad63c574405c1d31aade44081611047343c77", + "revisionTime": "2017-04-16T18:53:22Z" }, { "checksumSHA1": "mbhJnsNwGAwkTQH5c2hVRO9YmxA=",