小编Sar*_*raz的帖子

使用tls-extra进行简单的smtp

我正在尝试编写一个简单的脚本来通过我的Gmail帐户发送邮件.但我是一个初学者,所以它并不那么简单.我尝试谷歌,但为了hackage,没有任何帮助或例子.

问题是我没有找到使用tls-extra(或tls)来启动STARTTLS交换的方法.

好的,这是代码:

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 …
Run Code Online (Sandbox Code Playgroud)

haskell smtp starttls

9
推荐指数
1
解决办法
859
查看次数

haskell中的Gmail TLS hanshake故障

我正在尝试编写一个小脚本来通过gmail发送电子邮件.
我可以连接到gmail但是当我尝试hanshake它失败了.
任何指针都可以获得握手吗?

这是代码:

import Network.Socket
import Network
import Network.TLS
import Network.TLS.Extra

import Crypto.Random
import Data.CertificateStore -- to remove
import System.Certificate.X509 --to use I think

import System.IO
import Text.Printf

import Control.Monad (forever)
import qualified Data.ByteString.Char8 as B


main :: IO ()
main = emailGmail2

tListen :: Context -> IO ()
tListen ctx =
    forever $ recvData ctx >>= B.putStrLn

cWrite :: Handle -> String -> IO ()
cWrite h s  = do
    hPrintf h "%s\r\n" s
    printf    "> %s\n" s …
Run Code Online (Sandbox Code Playgroud)

ssl gmail haskell handshake

3
推荐指数
1
解决办法
1262
查看次数

标签 统计

haskell ×2

gmail ×1

handshake ×1

smtp ×1

ssl ×1

starttls ×1