diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/msgstore.go | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go index f67c49f..7209316 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -127,11 +127,22 @@ func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) { } func (store *MessageStore) FetchBodyPart( - uid uint32, part []int, cb func(io.Reader)) { + uid uint32, parent *models.BodyStructure, part []int, cb func(io.Reader)) { + partbs, err := parent.PartAtIndex(part) + if err != nil { + store.worker.Logger.Printf("FetchBodyPart: %v\n", err) + } + var charset string + var ok bool + if charset, ok = partbs.Params["charset"]; !ok { + charset = "" + } store.worker.PostAction(&types.FetchMessageBodyPart{ - Uid: uid, - Part: part, + Uid: uid, + Part: part, + Encoding: partbs.Encoding, + Charset: charset, }, func(resp types.WorkerMessage) { msg, ok := resp.(*types.MessageBodyPart) if !ok { |