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