diff --git a/examples/gmail.hs b/examples/gmail.hs new file mode 100644 index 0000000..7891652 --- /dev/null +++ b/examples/gmail.hs @@ -0,0 +1,38 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Network.HaskellNet.IMAP +import Network.HaskellNet.IMAP.SSL + +import Network.HaskellNet.SMTP +import Network.HaskellNet.SMTP.SSL + +import Network.HaskellNet.Auth (AuthType(PLAIN)) + +import Network.BSD (getHostName) +import qualified Data.ByteString.Char8 as B + +username = "username@gmail.com" +password = "password" +recipient = "someone@somewhere.com" + +imapTest = do + c <- connectIMAPSSL "imap.gmail.com" + login c username password + mboxes <- list c + mapM_ print mboxes + select c "INBOX" + msgs <- search c [ALLs] + let firstMsg = head msgs + msgContent <- fetch c firstMsg + B.putStrLn msgContent + +smtpTest = do + c <- connectSMTPSTARTTLS "smtp.gmail.com" + sendCommand c $ AUTH PLAIN username password + sendMail username [recipient] mailContent c + where mailContent = subject `B.append` body + subject = "Subject: Test message\r\n\r\n" + body = "This is a test message" + +main :: IO () +main = smtpTest >> imapTest >> return ()