Convert to UTF-8 any message part which specifies charset

This commit is contained in:
Michal Horejsek
2020-09-24 13:56:42 +02:00
parent d956b04062
commit a89a3f6612

View File

@ -102,11 +102,12 @@ func convertForeignEncodings(p *parser.Parser) error {
RegisterContentTypeHandler("text/.*", func(p *parser.Part) error {
return p.ConvertToUTF8()
}).
RegisterContentTypeHandler("multipart/alternative", func(p *parser.Part) error {
return p.ConvertToUTF8()
}).
RegisterDefaultHandler(func(p *parser.Part) error {
t, _, _ := p.Header.ContentType()
t, params, _ := p.Header.ContentType()
// multipart/alternative, for example, can contain extra charset.
if params != nil && params["charset"] != "" {
return p.ConvertToUTF8()
}
logrus.WithField("type", t).Trace("Not converting part to utf-8")
return nil
}).