From 11052951b74b9ad4b6a9412ae490086235f9154b Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 3 Jan 2021 13:40:40 +0100 Subject: Rewrite in Rust --- server/src/SendMail.hs | 66 -------------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 server/src/SendMail.hs (limited to 'server/src/SendMail.hs') diff --git a/server/src/SendMail.hs b/server/src/SendMail.hs deleted file mode 100644 index 13d4072..0000000 --- a/server/src/SendMail.hs +++ /dev/null @@ -1,66 +0,0 @@ -module SendMail - ( sendMail - ) where - -import Control.Arrow (left) -import Control.Exception (SomeException, try) -import Data.Either (isLeft) -import qualified Network.Mail.Mime as M - -import Data.Text (Text) -import qualified Data.Text as T -import qualified Data.Text.IO as T -import qualified Data.Text.Lazy as LT -import Data.Text.Lazy.Builder (fromText, toLazyText) - -import Conf (Conf) -import qualified Conf -import Model.Mail (Mail (..)) - -sendMail :: Conf -> Mail -> IO (Either Text ()) -sendMail conf mail = - if Conf.devMode conf - then - do - T.putStrLn . mockMailMessage $ mail - return (Right ()) - else - do - result <- left (T.pack . show) <$> (try (M.renderSendMail . getMimeMail $ mail) :: IO (Either SomeException ())) - if isLeft result - then putStrLn ("Error sending the following email:" ++ (show mail) ++ "\n" ++ (show result)) - else return () - return result - -mockMailMessage :: Mail -> Text -mockMailMessage mail = T.concat $ - [ "[MOCK MAIL] " - , subject mail - , " (from: " - , from mail - , ") (to: " - , T.intercalate ", " $ to mail - , ")" - , "\n" - , body mail - , "\n" - ] - -getMimeMail :: Mail -> M.Mail -getMimeMail (Mail mailFrom mailTo mailSubject mailPlainBody) = - let fromMail = M.emptyMail (address mailFrom) - in fromMail - { M.mailTo = map address mailTo - , M.mailParts = [ [ M.plainPart . strictToLazy $ mailPlainBody ] ] - , M.mailHeaders = [("Subject", mailSubject)] - } - -address :: Text -> M.Address -address addressEmail = - M.Address - { M.addressName = Nothing - , M.addressEmail = addressEmail - } - -strictToLazy :: Text -> LT.Text -strictToLazy = toLazyText . fromText -- cgit v1.2.3