2020-12-10 23:13:23 +02:00
|
|
|
{-# LANGUAGE TypeApplications #-}
|
2020-12-10 22:22:46 +02:00
|
|
|
module Data.Email where
|
|
|
|
|
|
|
|
import Data.Email.Header
|
|
|
|
|
|
|
|
import Conduit
|
|
|
|
import qualified Data.Conduit.Combinators as C
|
|
|
|
import qualified Data.Conduit.Text as CT
|
|
|
|
|
|
|
|
import Data.ByteString
|
|
|
|
(ByteString)
|
|
|
|
|
2020-12-10 23:13:23 +02:00
|
|
|
parseEmail :: (MonadUnliftIO m, MonadThrow m, Monad m) => ConduitM ByteString Header m ()
|
|
|
|
parseEmail = catchC (CT.decode CT.utf8) err .| CT.lines .| C.concatMap decode
|
|
|
|
where
|
|
|
|
err e = liftIO (print @CT.TextException e) >> yield ""
|