packages feed

postie-0.6.0.2: examples/Simple.hs

module Main where

import Network.Mail.Postie
import Pipes.ByteString (stdout)

settings :: Settings
settings =
  def
    { settingsOnOpen = \sid _ -> putStrLn $ show sid ++ " session opened",
      settingsOnClose = \sid -> putStrLn $ show sid ++ " session closed",
      settingsOnMailFrom = \sid addr -> do
        putStrLn $ show sid ++ " mail from " ++ show addr
        return Accepted,
      settingsOnRecipient = \sid addr -> do
        putStrLn $ show sid ++ " rcpt to " ++ show addr
        return Accepted,
      settingsOnStartTLS = \sid -> putStrLn $ show sid ++ " starttls"
    }

main :: IO ()
main = runSettings settings app
  where
    app (Mail sid _ _ _ body) = do
      putStrLn $ show sid ++ " data"
      runEffect $ body >-> stdout
      return Accepted