packages feed

postie-0.6.0.2: examples/TLS.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",
      settingsTLS =
        Just
          def
            { certFile = "examples/tls/server.crt",
              keyFile = "examples/tls/server.key"
            }
    }

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