diff --git a/message/part.go b/message/part.go index faba013d0f..61e2faa623 100644 --- a/message/part.go +++ b/message/part.go @@ -645,7 +645,7 @@ var ErrParamEncoding = errors.New("bad header parameter encoding") func (p *Part) DispositionFilename() (disposition string, filename string, err error) { h, err := p.Header() if err != nil { - return "", "", fmt.Errorf("parsing header: %v", err) + return "", "", fmt.Errorf("parsing header: %w", err) } var disp string var params map[string]string diff --git a/webmail/view.go b/webmail/view.go index 73b712df7b..22c4b4163f 100644 --- a/webmail/view.go +++ b/webmail/view.go @@ -1803,7 +1803,7 @@ func (q Query) attachmentFilterFn(log mlog.Log, acc *store.Account, state *msgSt } return func(m store.Message) bool { - if !state.ensurePart(m, false) { + if !state.ensurePart(m, true) { return false } types, err := attachmentTypes(log, m, state) @@ -1872,7 +1872,7 @@ func attachmentTypes(log mlog.Log, m store.Message, state *msgState) (map[Attach continue } _, filename, err := a.Part.DispositionFilename() - if err != nil && errors.Is(err, message.ErrParamEncoding) { + if err != nil && (errors.Is(err, message.ErrParamEncoding) || errors.Is(err, message.ErrHeader)) { log.Debugx("parsing disposition/filename", err) } else if err != nil { return nil, fmt.Errorf("reading disposition/filename: %v", err)