diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,27 +1,31 @@
-/*
- * Copyright (c) 2008, Stephen Blackheath
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the <organization> nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY STEPHEN BLACKHEATH ''AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL STEPHEN BLACKHEATH BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
+Copyright (c) 2008 Stephen Blackheath <http://blacksapphire.com/antispam/>
+Copyright (c) 2009 Matthew Elder
 
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the author nor the names of his contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/Network/SMTP/Simple.hs b/Network/SMTP/Simple.hs
new file mode 100644
--- /dev/null
+++ b/Network/SMTP/Simple.hs
@@ -0,0 +1,92 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Network.SMTP.Simple
+-- Copyright   :  2009 Matthew Elder
+-- License     :  BSD3
+--
+-- Maintainer  :  Matthew Elder
+-- Stability   :  provisional
+-- Portability :  linux/windows
+--
+-- Mail is a simple library with which you can add email functionality to your
+-- application. It assumes you have access to a smarthost which can relay all
+-- your mail.
+-- 
+-- As an example:
+--
+-- > import Network.SMTP.Simple
+-- > import System.IO
+-- >
+-- > main :: IO ()
+-- > main = do
+-- >     sendSimpleMessages (hPutStrLn stderr) "10.2.23.11" "example.com" [message]
+-- >     where message = SimpleMessage
+-- >                         [NameAddr (Just "John Doe") "johnd@example.com"]
+-- >                         [NameAddr (Just "Team") "team@exmaple.com"]
+-- >                         "My test email using Network.SMTP.Simple"
+-- >                         "Hi, this is a test email which uses SMTPClient."
+
+module Network.SMTP.Simple
+    ( NameAddr(..)
+    , SimpleMessage(..)
+    , sendRawMessages
+    , sendSimpleMessages
+    ) where
+
+import Data.IORef (newIORef, readIORef)
+import Network.Socket
+    (SockAddr(..)
+    , inet_addr
+    )
+import Network.SMTP.Client
+import System.Time
+    ( CalendarTime(..)
+    , getClockTime
+    , toCalendarTime
+    )
+
+data SimpleMessage
+    = SimpleMessage
+        { from :: [NameAddr] -- ^ The sender(s)
+        , to :: [NameAddr]   -- ^ The recipient(s)
+        , subject :: String  -- ^ The subject line
+        , body :: String     -- ^ The body
+        }
+    deriving (Show)
+
+toMessage :: CalendarTime -> SimpleMessage -> Message
+toMessage ct sm =
+    Message
+        [From (from sm), To (to sm), Subject (subject sm), Date ct]
+        (body sm)
+
+-- | Simplest way to send mail.  Takes the smarthost ip, the HELO domain, and a list of SimpleMessage.
+sendSimpleMessages :: (String -> IO ())  -- ^ Diagnostic log function
+                   -> String          -- ^ IP address of the smarthost
+                   -> String          -- ^ HELO domain (should be the same as your from-address-domain)
+                   -> [SimpleMessage] -- ^ List of simple messages to send
+                   -> IO ()
+sendSimpleMessages log smartHostIp heloDomain simpleMessages = do
+    nowCT <- toCalendarTime =<< getClockTime
+    hostAddr <- inet_addr smartHostIp
+    let smtpSockAddr = SockAddrInet 25 hostAddr
+    sendRawMessages log smtpSockAddr heloDomain (map (toMessage nowCT) simpleMessages)
+
+-- | Use this if you need more control than sendSimpleMessages gives you.
+sendRawMessages :: (String -> IO ()) -- ^ Diagnostic log function
+                -> SockAddr  -- ^ SockAddr for the smarthost
+                -> String    -- ^ HELO domain (should be the same as your from-address-domain)
+                -> [Message] -- ^ List of messages to send
+                -> IO ()
+sendRawMessages log smtpSockAddr heloDomain messages = do
+    sentRef <- newIORef []
+    sendSMTP' log (Just sentRef) heloDomain smtpSockAddr messages
+    statuses <- readIORef sentRef
+  
+    -- If no exception was caught, statuses is guaranteed to be
+    -- the same length as the list of input messages, therefore head won't fail here.
+    case head statuses of
+        Nothing ->
+            return ()
+        Just status ->
+            log $ "message failed: " ++ show status
diff --git a/SMTPClient.cabal b/SMTPClient.cabal
--- a/SMTPClient.cabal
+++ b/SMTPClient.cabal
@@ -1,10 +1,10 @@
 name: SMTPClient
-version: 1.0.2
+version: 1.0.3
 license: BSD3
 license-file: LICENSE
 cabal-version: >= 1.6
-copyright: (c) Stephen Blackheath
-author: Stephen Blackheath
+copyright: (c) Stephen Blackheath 2008, (c) Matthew Elder 2009
+author: Stephen Blackheath, Matthew Elder, Jeremy Shaw
 maintainer: http://blacksapphire.com/antispam/
 stability: stable
 synopsis: A simple SMTP client library
@@ -19,7 +19,7 @@
     type:     darcs
     location: http://code.haskell.org/SMTPClient/
 Library
-    exposed-modules: Network.SMTP.Client, Network.SMTP.ClientSession
+    exposed-modules: Network.SMTP.Client, Network.SMTP.ClientSession, Network.SMTP.Simple
     build-depends: base >= 3 && < 5, hsemail >= 1.6 && < 1.7, network, old-time, old-locale,
                    containers, extensible-exceptions >= 0.1 && < 0.2
 
