diff --git a/HaskellNet-SSL.cabal b/HaskellNet-SSL.cabal
--- a/HaskellNet-SSL.cabal
+++ b/HaskellNet-SSL.cabal
@@ -1,6 +1,6 @@
 name:                HaskellNet-SSL
 synopsis:            Helpers to connect to SSL/TLS mail servers with HaskellNet
-version:             0.1.0.0
+version:             0.1.1.0
 description:         This package ties together the HaskellNet and connection
                      packages to make it easy to open IMAP and SMTP connections
                      over SSL.
@@ -26,7 +26,7 @@
                        Network.HaskellNet.POP3.SSL
                        Network.HaskellNet.SMTP.SSL
   other-modules:       Network.HaskellNet.SSL
-  build-depends:       base ==4.5.*,
+  build-depends:       base >= 4 && < 5,
                        HaskellNet >= 0.3.1,
                        connection >= 0.1.3,
                        network >= 2.3,
diff --git a/src/Network/HaskellNet/SMTP/SSL.hs b/src/Network/HaskellNet/SMTP/SSL.hs
--- a/src/Network/HaskellNet/SMTP/SSL.hs
+++ b/src/Network/HaskellNet/SMTP/SSL.hs
@@ -3,6 +3,10 @@
     , connectSMTPSSLPort
     , connectSMTPSTARTTLS
     , connectSMTPSTARTTLSPort
+    , doSMTPSSL
+    , doSMTPSSLPort
+    , doSMTPSTARTTLS
+    , doSMTPSTARTTLSPort
     ) where
 
 import Network.Socket.Internal (PortNumber)
@@ -14,6 +18,7 @@
 
 import qualified Data.ByteString.Char8 as B
 
+import Control.Exception
 import Control.Monad
 import Data.IORef
 
@@ -64,3 +69,18 @@
 prefixedGetLine prefix rawGetLine = readIORef prefix >>= deliverLine
   where deliverLine [] = rawGetLine
         deliverLine (l:ls) = writeIORef prefix ls >> return l
+
+bracketSMTP :: IO SMTPConnection -> (SMTPConnection -> IO a) -> IO a
+bracketSMTP = flip bracket closeSMTP
+
+doSMTPSSL :: String -> (SMTPConnection -> IO a) -> IO a
+doSMTPSSL host = bracketSMTP $ connectSMTPSSL host
+
+doSMTPSSLPort :: String -> PortNumber -> (SMTPConnection -> IO a) -> IO a
+doSMTPSSLPort host port = bracketSMTP $ connectSMTPSSLPort host port
+
+doSMTPSTARTTLS :: String -> (SMTPConnection -> IO a) -> IO a
+doSMTPSTARTTLS host = bracketSMTP $ connectSMTPSTARTTLS host
+
+doSMTPSTARTTLSPort :: String -> PortNumber -> (SMTPConnection -> IO a) -> IO a
+doSMTPSTARTTLSPort host port = bracketSMTP $ connectSMTPSTARTTLSPort host port
