packages feed

mail-pool 2.2.3 → 2.3.0

raw patch · 3 files changed

+70/−39 lines, 3 filesdep −timedep ~HaskellNetdep ~basedep ~resource-pool

Dependencies removed: time

Dependency ranges changed: HaskellNet, base, resource-pool

Files

Changelog.md view
@@ -1,5 +1,12 @@ # Changelog mailpool +# Release 2.3.0 2024.08.12 ++ set default to starttls+  + apparantly mailgun requires it by default now+  + this change is what makes it a minor release++ upgrade to new data-pool++ # Release 2.2.3 2020.12.03  + No I need to fix haskell net 
mail-pool.cabal view
@@ -1,13 +1,7 @@-cabal-version: 1.12---- This file has been generated from package.yaml by hpack version 0.31.1.------ see: https://github.com/sol/hpack------ hash: f2f85cd494ec1e2df7247b76c890d08c48435918d7d88f2bc0d928cd0f09596d+cabal-version:      3.0  name:           mail-pool-version:        2.2.3+version:        2.3.0 synopsis:       Preconfigured email connection pool on top of smtp. description:    Email helper functions with some sane defaults such as a resource pool and cli support category:       Email@@ -22,23 +16,63 @@ extra-source-files:     Readme.md     LICENSE++extra-doc-files:     Changelog.md  source-repository head   type: git   location: https://github.com/jappeace/email-pool +common common-options+  default-extensions: +      EmptyCase+      FlexibleContexts+      FlexibleInstances+      InstanceSigs+      MultiParamTypeClasses+      LambdaCase+      MultiWayIf+      NamedFieldPuns+      TupleSections+      DeriveFoldable+      DeriveFunctor+      DeriveGeneric+      DeriveLift+      DeriveTraversable+      DerivingStrategies+      GeneralizedNewtypeDeriving+      StandaloneDeriving+      OverloadedStrings+      TypeApplications+      NumericUnderscores++  ghc-options:+    -O2 -Wall -Wincomplete-uni-patterns+    -Wincomplete-record-updates -Widentities -Wredundant-constraints+    -Wcpp-undef -fwarn-tabs -Wpartial-fields+    -fdefer-diagnostics -Wunused-packages+    -fenable-th-splice-warnings+    -fno-omit-yields+    -threaded++  build-depends:+      base >=4.9.1.0 && <4.21.0++  default-language: Haskell2010+ library+  import: common-options   exposed-modules:       Network.Mail.Pool   other-modules:       Paths_mail_pool+  autogen-modules:+      Paths_mail_pool   hs-source-dirs:       src-  default-extensions: EmptyCase FlexibleContexts FlexibleInstances InstanceSigs MultiParamTypeClasses LambdaCase MultiWayIf NamedFieldPuns TupleSections DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies GeneralizedNewtypeDeriving StandaloneDeriving OverloadedStrings TypeApplications-  ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wincomplete-record-updates -Widentities   build-depends:-      HaskellNet >=0.5.1+      HaskellNet >=0.6.0 && < 1.0     , HaskellNet-SSL >=0.3.4.1     , aeson >=1.4     , base >=4.7 && <5@@ -46,28 +80,20 @@     , mime-mail >=0.4.14     , network >=2.8.0.0     , optparse-applicative >=0.14.3.0-    , resource-pool >=0.2.3.2-    , time >=1.8.0.2+    , resource-pool >=0.4.0.0 && < 1.0   default-language: Haskell2010  executable exe+  import: common-options   main-is: mail.hs   other-modules:       Paths_mail_pool+  autogen-modules:+      Paths_mail_pool   hs-source-dirs:       app-  default-extensions: EmptyCase FlexibleContexts FlexibleInstances InstanceSigs MultiParamTypeClasses LambdaCase MultiWayIf NamedFieldPuns TupleSections DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies GeneralizedNewtypeDeriving StandaloneDeriving OverloadedStrings TypeApplications-  ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wincomplete-record-updates -Widentities -threaded -rtsopts -with-rtsopts=-N   build-depends:-      HaskellNet >=0.5.1-    , HaskellNet-SSL >=0.3.4.1-    , aeson >=1.4-    , base >=4.7 && <5-    , mail-pool-    , microlens >=0.4.10+      mail-pool     , mime-mail >=0.4.14-    , network >=2.8.0.0     , optparse-applicative >=0.14.3.0-    , resource-pool >=0.2.3.2-    , time >=1.8.0.2   default-language: Haskell2010
src/Network/Mail/Pool.hs view
@@ -16,12 +16,12 @@   , openTls   , openPlain   , openTls'+  , createPoolConfig   -- ** optparse applicative   , emailOptions   -- ** lenses   , poolCred   , poolConnf-  , poolStripes   , poolUnused   , poolStripeMax   , smtpHost@@ -38,7 +38,6 @@ import           Control.Monad.IO.Class import           Data.Aeson import           Data.Pool                   as X-import           Data.Time                   (NominalDiffTime) import           Lens.Micro import           Network.HaskellNet.SMTP     as X import           Network.HaskellNet.SMTP.SSL as X@@ -83,10 +82,8 @@     _poolCred      :: SmtpCred    -- | allows overriding of the opening function, for example 'openPlain' or 'openTls'   , _poolConnf     :: SmtpCred -> IO SMTPConnection-   -- | stripes, see docs: https://hackage.haskell.org/package/resource-pool-0.2.3.2/docs/Data-Pool.html-  , _poolStripes   :: Int    -- | specify how long connections are kept open.-  , _poolUnused    :: NominalDiffTime+  , _poolUnused    :: Double    -- | how many connections per stripe.   , _poolStripeMax :: Int   }@@ -95,9 +92,7 @@ poolCred      = lens _poolCred (\a b -> a{_poolCred=b}) poolConnf     :: Lens' PoolSettings (SmtpCred -> IO SMTPConnection) poolConnf      = lens _poolConnf (\a b -> a{_poolConnf=b})-poolStripes   :: Lens' PoolSettings Int-poolStripes      = lens _poolStripes (\a b -> a{_poolStripes=b})-poolUnused    :: Lens' PoolSettings NominalDiffTime+poolUnused    :: Lens' PoolSettings Double poolUnused      = lens _poolUnused (\a b -> a{_poolUnused=b}) poolStripeMax :: Lens' PoolSettings Int poolStripeMax      = lens _poolStripeMax (\a b -> a{_poolStripeMax=b})@@ -106,8 +101,7 @@ defSettings :: SmtpCred -> PoolSettings defSettings cred = PoolSettings   { _poolCred = cred-  , _poolConnf = openPlain-  , _poolStripes = 1+  , _poolConnf = openTls   , _poolUnused = 60   , _poolStripeMax = 5   }@@ -126,17 +120,21 @@  -- | Construct a connection pool from settings. smtpPool :: PoolSettings -> IO (Pool SMTPConnection)-smtpPool smtp =-    createPool+smtpPool =+  newPool . createPoolConfig++-- | allows manipulation of the underlying resourcepool config+createPoolConfig :: PoolSettings -> PoolConfig SMTPConnection+createPoolConfig smtp =+    defaultPoolConfig       (do         conn <- smtp ^. poolConnf $ smtp ^. poolCred         authorize conn (smtp ^. poolCred)         pure conn       )       closeSMTP-      (smtp ^. poolStripes)       (smtp ^. poolUnused)-      5+      (smtp ^. poolStripeMax )  handleAny :: (SomeException -> IO a) -> IO a -> IO a handleAny = handle@@ -181,4 +179,4 @@  -- | Send a 'Mail' with help of a connection pool. sendEmail :: MonadIO m => Pool SMTPConnection -> Mail -> m ()-sendEmail pool = liftIO . withResource pool . sendMimeMail2+sendEmail pool = liftIO . withResource pool . sendMail