From 53a84b4c934598f64d400c6ab52722fee85b654b Mon Sep 17 00:00:00 2001 From: Saku Laesvuori Date: Tue, 25 Aug 2026 19:19:46 +0300 Subject: [PATCH] =?UTF-8?q?Korjaa=20s=C3=A4hk=C3=B6postien=20lukeminen=20v?= =?UTF-8?q?=C3=A4=C3=A4rin=20tyypitetyst=C3=A4=20liitteest=C3=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- src/TiedoteMD/Review.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/TiedoteMD/Review.hs b/src/TiedoteMD/Review.hs index c673a54..cfb2ef2 100644 --- a/src/TiedoteMD/Review.hs +++ b/src/TiedoteMD/Review.hs @@ -103,8 +103,11 @@ parseEmail = first (EmailParseError . T.pack) . parse (message mime) getEmailsFromMessage :: MIMEMessage -> [Email] getEmailsFromMessage = readEmails . toListOf - (entities . filtered isText . transferDecoded' . _Right . charsetText' defaultCharsets . _Right) - where isText = matchContentType "text" Nothing . view contentType + (entities . transferDecoded' . _Right . charsetText' defaultCharsets . _Right) + -- 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 = fromMaybe [] . listToMaybe . reverse . sortBy (comparing length) .