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

VB 6 et antérieur Discussion :

[VB6] envoi de mail par winsock


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 15
    Points
    15
    Par défaut [VB6] envoi de mail par winsock
    je signale une faute dans le lien offert par bbil.
    à un moment du code d'envoi, est noté :

    If ws.State = sckClosed Or ws.State = sckClosing Then Exit Sub
    ws.GetData tmp, vbString, bytesTotal
    rtxtLog.Text = rtxtLog.Text & Chr(13) & tmp
    rtxtLog.Refresh
    nextSend = True
    End Sub
    le r manque. j'ajoute aussi qu'il semblerait qu'il faille renommer le contrôle winsock en ws (ce n'est pas précisé, je crois)

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Bonjour à tous, je reposte plutôt qu'édite, afin de continuer ce sujet.

    j'apporte en premier lieu quelques précisions pour éviter à d'autres nouveaux comme moi de galérer s'il ne connaissent rien au fonctionnement du réseau. voilà ce que j'ai pu apprendre depuis hier afin de faire fonctionner le programme

    le smtp est un protocole de transfert d'email qui utilise le port 25 (d'où le ws.Connect txtServer, 25). pour connaître le nom du serveur smtp adéquat, il suffit de prendre la partie droite de l'adresse mail à laquelle vous désirez envoyer le message, et d'ajouter "smtp." devant. c'est le serveur distant, semble-t-il qui s'occupe de rediriger sur la bonne adresse ensuite. vala pour cette case "smtp" qui m'a posé bien des problèmes ^^.

    Malgrès ça, en essayant le programme, de manière à m'envoyer un email sur ma propre adresse, j'ai obtenu, dans le richtextbox, le log suivant :

    Connexion au serveur réalisée
    220 ns0.ovh.net ssl0.ovh.net. You connect to mail147.ha.ovh.net ESMTP

    250 You are: (apparemment pleins de renseignements sur ma connection)

    250 ok

    250 ok

    354 go ahead

    250 ok 1149407354 qp 9308
    précision : j'ai donc inscrit mon adresse deus@truc.org dans la case "récepteur" et comme serveur smtp : smtp.truc.org.

    je n'ai pas les facultés pour décoder ce log :/ après renseignements, j'ai su que la plupart des serveurs ont des protections antispam et je me suis demandé si cela ne pourrait être la raison pour laquelle, en définitive, je ne reçois pas mon email. je ne demande pas forcément la réponse toute faîte, mais je n'ai plus de pistes de recherche pour avancer :/

    edit : un essai d'envoi avec les MAPI est concluant, j'ai donc une solution de secours, mais j'aimerais bien comprendre tout de même pourquoi le code présenté par Sébastien ne me permet pas d'envoyer d'email.

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    je n'ai jamais envoyé de mail par winsock... j'essai ce tutorial c'est aprés mindi et je te dis...

    as tu rempli la case émetteur .. avec ton adresse mail .?
    mes essasi avec mon serveur smtp, et mon adresse sont concluant.., cela fonctionne...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Merci pour ton aide. j'ai bien rempli, soit en mettant une autre de mes adresses mail en émetteur, soit celle que j'utilise d'habitude. en en récepteur, l'adresse que j'utilise d'habitude (aussi essayé avec l'autre) bref j'ai essayé toutes les configuration possible. en serveur smtp, je mets "smtp.truc.org"

    tout ceci avec le même code que celui que je t'ai envoyé. je ne reçois toujours pas d'email XD mais je vais plutôt chercher du coté de la machine, puisque le code fonctionne bel et bien. merci à toi. puis-je te demander d'afficher le log richtextbox lorsque cela t'a envoyé l'email (sans les informations relatives à ta connection) pour que cela me donne une idéée de ce que je devrais voir?

    il y'a probablement une chose toute simple que je fais mal, je vais m'employer à la trouver, merci encore

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    voila :

    Connexion au serveur réalisée
    220 mailfe01.swip.net ESMTP 5.0.8 is glad to see you!

    250 mailfe01.swip.net domain name should be qualified toto

    250 bbil@gmail.com sender accepted

    250 carnegie@gmail.com will relay mail from a client address

    354 Enter mail, end with "." on a line by itself

    250 188560235 mailfe01 Message accepted for delivery

    221 mailfe01.swip.net SMTP closing connection

    Deconnexion réalisée

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Merci à toi ^^. Je n'y arrive toujours pas, mais j'ai l'impression que je progresse. je pense que mon problème réside au niveau des serveurs, alors j'ai créé un compte gmail pour en configurer un en POP (je sais pas exactement ce que ça veut dire mais je crois que ça permet les email rentrants) avec le lien ci dessous pour thunderbird

    Configuring your email client: Thunderbird 1.5
    http://mail.google.com/support/bin/a...y?answer=38343

    me reste encore à comprendre un sombre histoire de port, je pense, et de connexion sécurisée tls, et je crois que j'aurais tous les éléments en main

    pour le moment avec l'adresse gmail j'obtiens ceci

    Connexion au serveur réalisée
    220 mx.gmail.com ESMTP m16sm4681415nfc

    250 mx.gmail.com at your service

    530 5.7.0 Must issue a STARTTLS command first m16sm4681415nfc

    530 5.7.0 Must issue a STARTTLS command first m16sm4681415nfc

    530 5.7.0 Must issue a STARTTLS command first m16sm4681415nfc

    502 5.5.1 Unrecognized command m16sm4681415nfc
    et en prenant les mêmes paramètres que toi, j'obtiens

    Connexion au serveur réalisée
    220 mailfe01.swip.net ESMTP 5.0.8

    250 mailfe01.swip.net domain name should be qualified toto

    250 bbil@gmail.com sender accepted

    571 carneqie@gmail.com prohibited. We do not relay

    554 no valid RCPT address specified

    501 Unknown command
    je reviens noter dès que j'en ai appris un peu plus sur les tls et les ports, je suppose que le serveur qui reçoit les mails doit avoir une configuration particulière et que le code ne fonctionne pas avec toutes les adresse emeil et tous les serveurs smtp, donc. ceci dit, comme ce topic concerne le vb et que les problèmes restant semblent concerner autre chose que le vb, il peut etre mis en [résolu]?

    merci en tout cas, ça m'a donné de nouvelles pistes pour essayer de résoudre mon souci ^^ avec de la bonne volonté, j'arriverais à démêler tout ça

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    Voila mes dernières avancées :

    dans un premier temps, il semblerais qu'il faille fermer la connection avant de l'ouvrir, ainsi qu'indiqué ici
    http://grafikm.developpez.com/vbreseau/Lecon1/

    le code permettant ceci est à ajouter avant la tentative de connection sur le serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ws.Close    'code à rajouter
    ws.LocalPort = 7000    'code à rajouter - c'est le port virtuel local que l'on va affecter à notre machine
    ws.Connect txtServer, 25
    ...
    il n'est pas évident que cela change grand chose (pas vu de différence ) mais cela nous permet normalement d'être sûr que la connection est fermée avant de la réouvrir.

    le lien expliquant le fonctionnement du smtp (RFC 2821) est le suivant. on y voit vers la fin des exemple de communication réussie qui permettent de comprendre les logs qu'on voit sur la richtextbox lors de l'envoi.
    http://www.ietf.org/rfc/rfc2821.txt

    d'après celui-ci, voici comment décoder le premier log que j'ai copié :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Connexion au serveur réalisée
    220 ns0.ovh.net ssl0.ovh.net. You connect to mail147.ha.ovh.net ESMTP
    la connection au serveur smtp est établi et renvoyée au serveur mail 147.ha.ovh.net ESMTP
    250 You are: (apparemment pleins de renseignements sur ma connection)
    la commande "Helo toto" envoie le nom de notre machine
    250 ok
    l'envoi de l'adresse de l'emetteur est ok
    250 ok
    l'envoi de l'adresse du récepteur est ok
    354 go ahead
    l'envoi du début du corps du mail est ok.
    250 ok 1149407354 qp 9308
    le 250 ok signifie que l'envoi du corps du mail est terminé par l'instruction <CRLF>.<CRLF>.
    Ce qui suggère que mon problème se situe au niveau de la fermeture de la connection?

    j'ai eu plusieurs fois un log qui semble parfait :
    Connexion au serveur réalisée
    220 ns0.ovh.net ssl0.ovh.net. You connect to mail44.ha.ovh.net ESMTP

    250-ns0.ovh.net ssl0.ovh.net. You connect to mail44.ha.ovh.net
    250-AUTH LOGIN CRAM-MD5 PLAIN
    250-AUTH=LOGIN CRAM-MD5 PLAIN
    250-PIPELINING
    250-8BITMIME
    250 SIZE 10000000

    250 ok

    250 ok

    354 go ahead

    250 ok 1149585219 qp 17956

    221 ns0.ovh.net ssl0.ovh.net. You connect to mail44.ha.ovh.net

    Deconnexion réalisée
    Mais pourtant, toujours pas de mail se peut il que le serveur n'accepte pas certains types de mail, et qu'il vire ceux lancés avec le programme?

  8. #8
    Membre régulier

    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 122
    Points
    122
    Par défaut
    Serveur de Gmail :
    530 5.7.0 Must issue a STARTTLS command first m16sm4681415nfc
    Il faut utiliser une connex TLS (sécurisé ?) avant d'aller plus loin.
    ftp://ftp.isi.edu/in-notes/rfc2487.txt

    Serveur Swip.net :
    571 carneqie@gmail.com prohibited. We do not relay
    Un utilisateur de gmail essayes de transmettre un mail a un autre utilisateur de gmail, mais en passant par les serveurs de swip.net ?? De même, un utilisateur de wanadoo aurra du mal a envoyer des mails en utilisant les serveurs de free...

    Serveur OVH :
    250 ok 1149407354 qp 9308
    Le serveur chez OVH semble bien prendre le mail en compte puisqu'il donnes un numéro de queue, ceci dit, il faut s'authentifier chez OVH, comme chez beaucoup d'autres normalement... donc... quid du destin de ce mail
    http://www.kit-jussieu.org/support/node26.html

    Le plus simple, s'identifier auprès du serveur d'OVH...
    Bon courage Carnegie !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'envoie de mail par SMTP
    Par yass dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 12/09/2008, 16h45
  2. [SQL]Envoie de mail par une procedure
    Par yoyopi dans le forum DB2
    Réponses: 19
    Dernier message: 22/02/2008, 16h30
  3. [VB6]Envoi de mail
    Par dimic13 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 14/02/2006, 21h01
  4. [Mail] Envoi de mail par SMTP ?
    Par Borami dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2006, 12h26
  5. [Mail] newsletter, envoi de mail par lot
    Par jexl dans le forum Langage
    Réponses: 9
    Dernier message: 08/09/2005, 16h44

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