Add gmail IMAP/SMTP example
This commit is contained in:
parent
7f8faffa24
commit
3c2e9d9298
38
examples/gmail.hs
Normal file
38
examples/gmail.hs
Normal file
@ -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 ()
|
||||||
Loading…
Reference in New Issue
Block a user