aboutsummaryrefslogtreecommitdiff
path: root/src/Mail.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Mail.hs')
-rw-r--r--src/Mail.hs50
1 files changed, 0 insertions, 50 deletions
diff --git a/src/Mail.hs b/src/Mail.hs
deleted file mode 100644
index 1145f9f..0000000
--- a/src/Mail.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
-module Mail
- ( send
- ) where
-
-import Data.Text (Text)
-import qualified Data.Text as T
-import qualified Data.Text.Lazy as LT
-import Data.Text.Lazy.Builder (toLazyText, fromText)
-import Data.Either (isLeft)
-
-import Control.Exception (SomeException, try)
-import Control.Arrow (left)
-
-import qualified Network.Mail.Mime as Mime
-
-import Model.Mail (Mail)
-import qualified Model.Mail as Mail
-
-send :: Mail -> IO (Either Text ())
-send mail = do
- result <- left (T.pack . show) <$> (try (Mime.renderSendMail . getMimeMail $ mail) :: IO (Either SomeException ()))
- if isLeft result
- then putStrLn ("Error sending the following email:" ++ (show mail))
- else return ()
- return result
-
-getMimeMail :: Mail -> Mime.Mail
-getMimeMail mail =
- let fromMail = Mime.emptyMail . address . Mail.from $ mail
- in fromMail
- { Mime.mailTo = map address . Mail.to $ mail
- , Mime.mailParts =
- [ [ Mime.plainPart . strictToLazy . Mail.plainBody $ mail
- , Mime.htmlPart . strictToLazy . Mail.htmlBody $ mail
- ]
- ]
- , Mime.mailHeaders = [("Subject", Mail.subject mail)]
- }
-
-address :: Text -> Mime.Address
-address addressEmail =
- Mime.Address
- { Mime.addressName = Nothing
- , Mime.addressEmail = addressEmail
- }
-
-strictToLazy :: Text -> LT.Text
-strictToLazy = toLazyText . fromText