Korjaa sähköpostien lukeminen väärin tyypitetystä liitteestä
Windows saattaa raportoida csv-tiedoston MIME-tyypiksi application/vnd.ms-excel, jolloin tiedote.md jätti sen tyystin lukematta, koska se ei osaa lukea Excel-tiedostoja oikein. Tällä muutoksella tiedote.md yrittää lukea kaikki viestin osat utf-8-koodauksella, jos muuta ei voi päätellä, ja etsii osoitteita niistä. Väärästä liitteestä pitäisi olla niin epätodennäköistä löytää eniten kelvollisia osoitteita nätisti omilla riveillään, että tämä tuskin aiheuttaa virhetulkintoja.
This commit is contained in:
parent
b49e77de8a
commit
53a84b4c93
@ -103,8 +103,11 @@ parseEmail = first (EmailParseError . T.pack) . parse (message mime)
|
|||||||
|
|
||||||
getEmailsFromMessage :: MIMEMessage -> [Email]
|
getEmailsFromMessage :: MIMEMessage -> [Email]
|
||||||
getEmailsFromMessage = readEmails . toListOf
|
getEmailsFromMessage = readEmails . toListOf
|
||||||
(entities . filtered isText . transferDecoded' . _Right . charsetText' defaultCharsets . _Right)
|
(entities . transferDecoded' . _Right . charsetText' defaultCharsets . _Right)
|
||||||
where isText = matchContentType "text" Nothing . view contentType
|
-- Windows is broken and reports text/csv as application/vnd.ms-excel...
|
||||||
|
-- Purebred-email tries to decode non-text entities as utf-8 which should
|
||||||
|
-- work in this case. It is unlikely that any entity would accidentally
|
||||||
|
-- contain enough valid addresses on their own lines to fool readEmails.
|
||||||
|
|
||||||
readEmails :: [T.Text] -> [Email]
|
readEmails :: [T.Text] -> [Email]
|
||||||
readEmails = fromMaybe [] . listToMaybe . reverse . sortBy (comparing length) .
|
readEmails = fromMaybe [] . listToMaybe . reverse . sortBy (comparing length) .
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user