diff --git a/Network/Mail/Mime/SES.hs b/Network/Mail/Mime/SES.hs
--- a/Network/Mail/Mime/SES.hs
+++ b/Network/Mail/Mime/SES.hs
@@ -1,16 +1,15 @@
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 module Network.Mail.Mime.SES
     ( sendMailSES
     , renderSendMailSES
     , SES (..)
-    , SESException (..)
     ) where
 
 import Data.ByteString (ByteString)
 import Network.Mail.Mime (Mail, renderMail')
 import qualified Data.ByteString.Lazy as L
-import Network.HTTP.Enumerator
+import Network.HTTP.Conduit (httpLbs, Manager, parseUrl, queryString, requestHeaders)
+import Network.HTTP.Types (renderQuery)
 import Data.Time.Format (formatTime)
 import System.Locale (defaultTimeLocale)
 import Data.Time (getCurrentTime)
@@ -19,9 +18,8 @@
 import Crypto.Hash.SHA256 (SHA256)
 import Data.ByteString.Base64 (encode)
 import qualified Data.Serialize as S
-import Control.Exception (Exception, throwIO)
-import Data.Typeable (Typeable)
-import Control.Monad (unless)
+import Control.Monad.Trans.Resource (ResourceIO, ResourceT)
+import Control.Monad.IO.Class (liftIO)
 
 data SES = SES
     { sesFrom :: ByteString
@@ -30,15 +28,15 @@
     , sesSecretKey :: ByteString
     }
 
-renderSendMailSES :: SES -> Mail -> IO ()
-renderSendMailSES ses mail = renderMail' mail >>= sendMailSES ses
+renderSendMailSES :: ResourceIO m => Manager -> SES -> Mail -> ResourceT m ()
+renderSendMailSES m ses mail = liftIO (renderMail' mail) >>= sendMailSES m ses
 
-sendMailSES :: SES -> L.ByteString -> IO ()
-sendMailSES ses msg = do
-    now <- getCurrentTime
+sendMailSES :: ResourceIO m => Manager -> SES -> L.ByteString -> ResourceT m ()
+sendMailSES manager ses msg = do
+    now <- liftIO getCurrentTime
     let date = S8.pack $ format now
         sig = makeSig date $ sesSecretKey ses
-    req' <- parseUrl "https://email.us-east-1.amazonaws.com"
+    req' <- liftIO $ parseUrl "https://email.us-east-1.amazonaws.com"
     let auth = S8.concat
             [ "AWS3-HTTPS AWSAccessKeyId="
             , sesAccessKey ses
@@ -46,14 +44,14 @@
             , sig
             ]
     let req = req'
-            { queryString = qs
+            { queryString = renderQuery False qs
             , requestHeaders =
                 [ ("Date", date)
                 , ("X-Amzn-Authorization", auth)
                 ]
             }
-    res <- withManager $ httpLbs req
-    unless (statusCode res == 200) $ throwIO $ SESException res
+    _ <- httpLbs req manager
+    return ()
   where
     qs =
           ("Action", Just "SendRawEmail")
@@ -72,7 +70,3 @@
   where
     x :: SHA256
     x = undefined
-
-data SESException = SESException Response
-    deriving (Show, Typeable)
-instance Exception SESException
diff --git a/mime-mail-ses.cabal b/mime-mail-ses.cabal
--- a/mime-mail-ses.cabal
+++ b/mime-mail-ses.cabal
@@ -1,5 +1,5 @@
 Name:                mime-mail-ses
-Version:             0.0.0.5
+Version:             0.1.0
 Synopsis:            Send mime-mail messages via Amazon SES
 Homepage:            http://github.com/snoyberg/mime-mail-ses
 License:             BSD3
@@ -20,6 +20,9 @@
                      , bytestring         >= 0.9       && < 0.10
                      , time               >= 1.1
                      , old-locale
-                     , http-enumerator    >= 0.6       && < 0.8
+                     , http-conduit       >= 1.2       && < 1.3
                      , mime-mail          >= 0.3       && < 0.5
+                     , conduit
+                     , transformers       >= 0.2
+                     , http-types         >= 0.6.8     && < 0.7
   ghc-options: -Wall
