diff options
Diffstat (limited to 'worker')
-rw-r--r-- | worker/imap/fetch.go | 10 | ||||
-rw-r--r-- | worker/types/messages.go | 24 |
2 files changed, 25 insertions, 9 deletions
diff --git a/worker/imap/fetch.go b/worker/imap/fetch.go index 884ab73..d229126 100644 --- a/worker/imap/fetch.go +++ b/worker/imap/fetch.go @@ -12,6 +12,7 @@ func (imapw *IMAPWorker) handleFetchMessageHeaders( imapw.worker.Logger.Printf("Fetching message headers") items := []imap.FetchItem{ + imap.FetchBodyStructure, imap.FetchEnvelope, imap.FetchInternalDate, imap.FetchFlags, @@ -57,10 +58,11 @@ func (imapw *IMAPWorker) handleFetchMessages( }, nil) } else { imapw.worker.PostMessage(&types.MessageInfo{ - Envelope: _msg.Envelope, - Flags: _msg.Flags, - InternalDate: _msg.InternalDate, - Uid: _msg.Uid, + BodyStructure: _msg.BodyStructure, + Envelope: _msg.Envelope, + Flags: _msg.Flags, + InternalDate: _msg.InternalDate, + Uid: _msg.Uid, }, nil) } } diff --git a/worker/types/messages.go b/worker/types/messages.go index f38bb22..b1d1485 100644 --- a/worker/types/messages.go +++ b/worker/types/messages.go @@ -2,6 +2,7 @@ package types import ( "crypto/x509" + "io" "time" "github.com/emersion/go-imap" @@ -86,6 +87,12 @@ type FetchMessageBodies struct { Uids imap.SeqSet } +type FetchMessageBodyPart struct { + Message + Uid uint32 + Part int +} + type DeleteMessages struct { Message Uids imap.SeqSet @@ -120,11 +127,12 @@ type DirectoryContents struct { type MessageInfo struct { Message - Envelope *imap.Envelope - Flags []string - InternalDate time.Time - Size uint32 - Uid uint32 + BodyStructure *imap.BodyStructure + Envelope *imap.Envelope + Flags []string + InternalDate time.Time + Size uint32 + Uid uint32 } type MessageBody struct { @@ -133,6 +141,12 @@ type MessageBody struct { Uid uint32 } +type MessageBodyPart struct { + Message + Reader *io.Reader + Uid uint32 +} + type MessagesDeleted struct { Message Uids []uint32 |