IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Haskell Discussion :

envoyer un mail via gmail


Sujet :

Haskell

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut envoyer un mail via gmail
    Bonjour,

    J'ai déjà effectué des recherches sur le net, mais ce n'est pas un sujet trés populaire.
    Comme indiqué dans le titre, je voudrais envoyer un mail via gmail.
    Cependant le service mail de google n'accepte que des connection via ssl.

    Ok donc première tentative je me connecte, je balance un STARTTLS et je je me mets en ssl. Deuxieme tentative, je me connecte directement en ssl.
    Pour l'instant j'en suis nul part...

    Mes codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    import Network
    import Network.TLS
    import Network.TLS.Extra
    import System.IO
    import Text.Printf
    import Crypto.Random
    import qualified Data.ByteString as B
    import Control.Monad (forever)
     
    serv :: String
    serv="smtp.gmail.com"
     
    port :: String
    port="465"
     
    main=test2
     
    params=TLSParams {pConnectVersion=SSL3
                     , pCiphers=ciphersuite_all
                     }
     
    test2=do g <- newGenIO :: IO SystemRandom
             handle <- connectionClient serv port params g
             forever $ (recvData handle) >>= B.putStrLn
    Grosso modo j'essaie de me co directement en ssl.
    Mais ça ne marce pas. Quelqu'un aurait une solution, une piste, quoi que ce soit!!!!?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Jour,

    Bon, j'ai un peu avancé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    import Network
    import Network.TLS
    import Network.TLS.Extra
    import System.IO
    import Text.Printf
    import Control.Monad (forever)
    import Control.Concurrent (threadDelay)
    import qualified Data.ByteString.Char8 as B
    import Crypto.Random
     
    serv :: String
    serv = "smtp.gmail.com"
    port :: Int
    port   = 25 --that has to chage, I think
     
    main :: IO ()
    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
     
    printSock :: Handle -> String -> IO ()
    printSock h s = do write h s
                       hGetLine h >>= putStrLn
                       threadDelay 25
     
    params :: TLSParams
    params=defaultParams {pConnectVersion=TLS12
                         ,pAllowedVersions=[TLS10, TLS11, TLS12]
                         ,pCiphers=ciphersuite_all}
     
    test1 = do h <- connectTo serv (PortNumber (fromIntegral port))
               hSetBuffering h NoBuffering
               printSock h "EHLO"
               printSock h "STARTTLS"
               --google waits for tls handshake
               --the problem is from here
               g <- newGenIO :: IO SystemRandom
               tlsH <- client params g h
               handshake tlsH --the handshake is failling
    Mon probleme cependant est toujours le meme. arriver a negocier cet echange TLS.
    Franchement, je suis étonné par le manque de reponse que je reçois. Je veux dire jusqu'a maintenant les rares fois ou j'avais un probleme la communauté était hyper rapide.
    Mais la j'ai l'impression que c'est un probleme qui ne concerne personne (juste un constat). Que ça soit ici ou sur #haskell ou SO d'ailleurs.

    Bref si quelqu'un a des pistes sur google et tls...
    J'ai regardé le code du client msmtp mais a vrai dire j'ai pas vraiment un niveau suffisant.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 97
    Points : 307
    Points
    307
    Par défaut
    La réponse est simple, votre problème n'est pas propre à Haskell mais au protocole de communication SSL. Avez vous regardez comment cela était implémenté dans d'autres langages que vous maîtrisés ?

Discussions similaires

  1. [AC-2007] Peut-on envoyer un mail via un webmail GMAIL et de façon transparente ?
    Par tibofo dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/01/2010, 14h38
  2. Réponses: 3
    Dernier message: 07/12/2009, 11h31
  3. Imposible d'envoyer des mail via un autre serveur
    Par HwRZxLc4 dans le forum Administration système
    Réponses: 0
    Dernier message: 27/04/2008, 15h37
  4. [AIX] Envoyer un mail via sendmail
    Par medora dans le forum AIX
    Réponses: 2
    Dernier message: 03/05/2007, 16h45
  5. Réponses: 1
    Dernier message: 28/04/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo