[Haskell-beginners] Using tls-extra for simple smtp
Sarfraz K.
dragoon.empire at yahoo.fr
Tue Jul 3 17:16:37 CEST 2012
I am trying to write a simple script to send a mail via my gmail account.
But I am a beginner so it is not that simple.
I tryed google but exept for hackage, there is no help or examples at all.
The problem is that I did not find the way to use tls-extra(or tls)
to initiate the STARTTLS exchange.
Ok, here is the code:
import Network
import Network.TLS.Extra
import System.IO
import Text.Printf
server = "smtp.gmail.com"
port = 25 --that has to chage, I think
forever a = a >> forever a
main = test1
write :: Handle -> String -> IO ()
write h s = do
hPrintf h "%s\r\n" s
printf "> %s\n" s
listen :: Handle -> IO ()
listen h = forever $ hGetLine h >>= putStrLn
test1 = do h <- connectTo server (PortNumber (fromIntegral port))
hSetBuffering h NoBuffering
write h "EHLO"
write h "STATTLS"
listen h
Another thing is that I use the listen function to know what is going on.
But I cannot figure out how to use it along with write.
That is to say, I would like to be able to see what is going on server-side
while sending some data.
I found two functions that may resolve my problems:
connectionClient :: CryptoRandomGen g => String -> String -> TLSParams -> g -> IO (TLSCtx Handle)
forkIO :: IO () -> IO ThreadId
The first for tls and the second to send and receive at the same time.
But can't seem to make them work.
I hope I am not to messy here, any help would be appreciated.
PS: English is not my native.
--
Sarfraz K.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/beginners/attachments/20120703/38a89389/attachment.pgp>
More information about the Beginners
mailing list