aboutsummaryrefslogtreecommitdiff
path: root/worker
diff options
context:
space:
mode:
Diffstat (limited to 'worker')
-rw-r--r--worker/imap/fetch.go10
-rw-r--r--worker/types/messages.go24
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