Aide Protocole smtp

Résolu/Fermé
Norky77 Messages postés 15 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 31 août 2012 - 29 juil. 2012 à 18:55
Norky77 Messages postés 15 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 31 août 2012 - 29 juil. 2012 à 20:50
Bonjour à tous,

alors voilà je viens de terminer un petit programme en langage C sous windows, qui envoie un mail à une adresse, comme par exemple adresse_bidon@yahoo.fr

Aucun message d'erreur dans la console, le mail est bien reçu, avec le titre du mail, le destinataire, tout ca tout ca, sauf le contenu du mail.
Je comprends pas pourquoi le mail affiche : "Ce message est vide" lorsque je le reçois, alors qu'il devrait y avoir écris du texte.

Je continue de chercher, mais si une âme charitable pouvait m'indiquer dans mon code, la partie du protocole smtp qui déconne (à mon avis le problème viens de la vu que le mail est bien reçu), ca m'aiderait :).

 int Port = 587;

 char serveur[] = "smtp.mail.yahoo.fr";

 char lemail[] = "EHLO localhost\r\n"
                "AUTH PLAIN\r\n"
                "xxxxxxxxx Mon code d'authentification xxxxxx\r\n"
                "MAIL FROM:<adresse_bidon@yahoo.fr>\r\n"
                "RCPT TO:<adresse_non_existante@yahoo.fr >\r\n"
                "DATA\r\n"
                "Subject: Mail de test\r\n"
                "FROM: Me <adresse_bidon@yahoo.fr>\r\n"
                "TO: You <adresse_non_existante@yahoo.fr>\r\n"
                "Test\r\n"
                ".\r\n"
                "QUIT\r\n\r\n";


Ici par exemple le mail devrait contenir "Test", mais il est vide...
Hormis le sujet etc...

Merci de votre aide.

8 réponses

jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 235
Modifié par jee pee le 29/07/2012 à 19:18
Salut,

Une suggestion remonter from et to au dessus de data et donc avoir le texte derrière le sujet :

               "DATA\r\n"  
               "Subject: Mail de test\r\n"  
                "Test\r\n"   
                ".\r\n"

cdlt

ps : d'ailleurs from et to ne semblent pas être des commandes smtp

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Norky77 Messages postés 15 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 31 août 2012
29 juil. 2012 à 19:35
Merci pour la suggestion mais ca ne fonctionne pas.

Ca fait "502 Command not implemented", du coup le mail atteri dans les spams oulala :P

Et il est toujours vide ><
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 235
29 juil. 2012 à 20:11
from et to ne sont pas des commandes smtp, mais des champs à mettre derrière data, avant subject.

as-tu essayé un mail à la main via : telnet smtp.mail.yahoo.fr 25

pour vérifier par exemple que la fin de data c'est bien un point.

0
Norky77 Messages postés 15 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 31 août 2012
29 juil. 2012 à 20:23
"from et to ne sont pas des commandes smtp, mais des champs à mettre derrière data, avant subject."

Oui, tu as raison, d'ailleurs je me demande si il ne faut pas mettre une "balise" comme cela pour indiquer le contenu du mail. Je met bien Subject pour indiquer le titre du mail alors c'est peut-être pareil avec le contenu.

J'utilise pas le port 25 j'arrive pas à me connecter au serveur avec ce port.

Par contre sur le 587 cela fonctionne et il m'indique bien que la fin est un '.'

Voici ce que m'affiche la console si ca peut t'aider

220 smtp142.mail.uk1.yahoo.com ESMTP

250-smtp142.mail.uk1.yahoo.com
250-AUTH LOGIN PLAIN XYMCOOKIE
250-PIPELINING
250-SIZE 41697280
250 8BITMIMI
334 ok, go on
235 OK, go ahead
250 OK, completed
250 OK, completed
354 Start Mail. End with CRLF.CRLF

250  OK, completed

221 Service Closing transmission
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 235
Modifié par jee pee le 29/07/2012 à 20:31
Le port 25 doit être bloqué par ta box, c'est pourquoi il y a un port échappatoire.

Dans les exemples que j'ai vu il n'y a pas de balise pour le texte, c'est peut être particulier à yahoo.

Dans la commande via telnet tu as le texte ?

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Norky77 Messages postés 15 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 31 août 2012
29 juil. 2012 à 20:40
Pour la commande : telnet smtp.mail.yahoo.fr 25, il m'indique "Impossible d'ouvrir une connexion à l'hôte, sur le port 25: Echec lors de la connexion"


J'ai essayé de changer la ligne censé mettre fin au Data :

en mettant deux lignes lignes blanches, "\r\n\r\n", le programme boucle infini, ou bien timeout, (ou alors je suis vraiment pas patient xd)

par contre j'ai remarqué que en mettant ca "\r\n\r\n.\r\n\r\n", le mail contient un saut à la ligne. ><
Sinon il est toujours vide.
0
jee pee Messages postés 39632 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 avril 2024 9 235
29 juil. 2012 à 20:45
Et en mettant une ligne banche entre le sujet et le texte ?
0
Norky77 Messages postés 15 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 31 août 2012
Modifié par Norky77 le 29/07/2012 à 21:00
Youhou ca fonctionne :P ! MERCI =** !

Le texte s'affiche correctement dans le mail.
Il est un peux capriceux quand même, juste pour une ligne blanche.

Apparement il n'apprécie pas que le contenu et le subject soit "collé" l'un à l'autre.

En tout cas merci je vais pouvoir avancer :)
0