X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMail.hs;h=03b7284665fa40b742cc6d36fa3a9209c2a6c838;hb=606371fece618f28d3fedf182165ef3a56bf4159;hp=c93a6cff2e9cc53e11e96e9b0e4c36f7733b17fd;hpb=376e4ed1f16a0fe5a4d100877c618d85e20a9b8f;p=dead%2Fhalcyon.git diff --git a/src/Mail.hs b/src/Mail.hs index c93a6cf..03b7284 100644 --- a/src/Mail.hs +++ b/src/Mail.hs @@ -4,13 +4,13 @@ module Mail where import Control.Concurrent -import Control.Concurrent.MVar import Control.Exception (evaluate) import Data.List (intercalate) import System.Exit import System.Process import System.Time (CalendarTime(..), ClockTime, getClockTime, Month, toCalendarTime) -import System.IO +import System.IO (hClose, hGetContents, hPutStr) + type Header = String @@ -22,9 +22,13 @@ data Message = Message { headers :: [Header], to :: String } deriving (Eq) +-- |The default headers attached to each message. +-- The MIME junk is needed for UTF-8 to work properly. +-- Note that your mail server should support the 8BITMIME extension. default_headers :: [Header] default_headers = ["MIME-Version: 1.0", - "Content-type: text/plain; charset=UTF-8"] + "Content-Type: text/plain; charset=UTF-8", + "Content-Transfer-Encoding: 8bit"] -- |Showing a message will print it in roughly RFC-compliant -- form. This form is sufficient for handing the message off to @@ -122,9 +126,9 @@ sendmail message = do errm <- newEmptyMVar errs <- hGetContents errh - forkIO $ hPutStr inh (show message) >> hClose inh - forkIO $ evaluate (length outs) >> putMVar outm () - forkIO $ evaluate (length errs) >> putMVar errm () + _ <- forkIO $ hPutStr inh (show message) >> hClose inh + _ <- forkIO $ evaluate (length outs) >> putMVar outm () + _ <- forkIO $ evaluate (length errs) >> putMVar errm () readMVar outm readMVar errm