veqryn / go-email

Email parsing and mail creation library for golang
MIT License
95 stars 32 forks source link

Mime encoded content headers #8

Open memuyskens opened 4 years ago

memuyskens commented 4 years ago

Hello! I help maintain a program that parses emails for specific attachments which uses this library.

I came across a unique email where the Content-Disposition filename looks like this: "=?iso-8859-1?B?cmVwb3J0XzE4TUFZMjAuY3N2?="

If I use the Header function ContentDisposition() and get the value from key "filename", I would expect it to look like this: report_18MAY20.csv

I was able to work around this for now using code similar to this:

mimeDecoder := mime.WordDecoder{}
_, params, _ := message.Header.ContentDisposition()
filename, _ := mimeDecoder.DecodeHeader(params["filename"])

Should params be decoded via this library, the mime package's ParseMediaType(), or an end user like myself?

Thanks!