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
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
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