-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Preconfigured email connection pool on top of smtp. -- -- Email helper functions with some sane defaults such as a resource pool -- and cli support @package mail-pool @version 2.1.0 module Network.Mail.Pool smtpPool :: PoolSettings -> IO (Pool SMTPConnection) data PoolSettings PoolSettings :: SmtpCred -> (SmtpCred -> IO SMTPConnection) -> Int -> NominalDiffTime -> Int -> PoolSettings -- | credentials for smtp connection [_poolCred] :: PoolSettings -> SmtpCred -- | smtpcred can't be factored out. [_poolConnf] :: PoolSettings -> SmtpCred -> IO SMTPConnection -- | stripe, see docs, I think I just need 1: -- https://hackage.haskell.org/package/resource-pool-0.2.3.2/docs/Data-Pool.html [_poolStripes] :: PoolSettings -> Int -- | unused connections are kept open for a minute [_poolUnused] :: PoolSettings -> NominalDiffTime -- | max. 10 connections open per stripe [_poolStripeMax] :: PoolSettings -> Int defSettings :: SmtpCred -> PoolSettings openTls :: SmtpCred -> IO SMTPConnection openPlain :: SmtpCred -> IO SMTPConnection openTls' :: Settings -> SmtpCred -> IO SMTPConnection sendEmail :: MonadIO m => Pool SMTPConnection -> Mail -> m () -- | We use smtp because it's an incredibly stable and well supported -- protocol this prevents vendorlocking. data SmtpCred SmtpCred :: String -> String -> String -> PortNumber -> SmtpCred [_smtpPassword] :: SmtpCred -> String [_smtpLogin] :: SmtpCred -> String [_smtpHost] :: SmtpCred -> String [_smtpPort] :: SmtpCred -> PortNumber emailOptions :: Parser SmtpCred poolCred :: Lens' PoolSettings SmtpCred poolConnf :: Lens' PoolSettings (SmtpCred -> IO SMTPConnection) poolStripes :: Lens' PoolSettings Int poolUnused :: Lens' PoolSettings NominalDiffTime poolStripeMax :: Lens' PoolSettings Int smtpHost :: Lens' SmtpCred String smtpLogin :: Lens' SmtpCred String smtpPassword :: Lens' SmtpCred String smtpPort :: Lens' SmtpCred PortNumber instance GHC.Show.Show Network.Mail.Pool.SmtpCred instance (Data.Typeable.Internal.Typeable a, GHC.Show.Show a) => GHC.Exception.Type.Exception (Network.Mail.Pool.ServiceAuthFailure a) instance GHC.Show.Show a => GHC.Show.Show (Network.Mail.Pool.ServiceAuthFailure a)