Probleme d'envoi de données a un server SMTP.

Fermé
lE DoN - 19 sept. 2010 à 21:42
fanowine Messages postés 20 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 24 juillet 2019 - 18 nov. 2010 à 06:24
Bonjour,

Voila actuellement je suis en train de coder un programme pour envoyer un mail, donc en fait je commence par créer des tableaux contenant les directives d'envoi du genre:

char HEAD[100]="HELO Salut\r\n";
char sender[100]="MAIL FROM: <";
char receiver[100]="RCPT TO: <";
char line_ret[]="\r\n";
etc...

j'utilise les sockets avec la bibliotheque winsock de windows, j'arrive parfaitement a compiler mon programme et à recevoir des données venant du server smtp en utilisant le port 25, j'ai fait des opérations de concaténation pour relever les adresses que souhaite utiliser l'utilisateur avec les tableaux précédents, mais au moment ou j'envoie mes données sender et receiver, le server me répond a chaque fois:

"500 5.5.2 Error: bad syntax" alors que pour HEAD sa marche plutôt bien...voici les étapes de mon code si sa peut vous aider avec juste le tableau sender:

printf(".Votre adresse mail: ");
scanf("%s",&expeditor);

printf(".Adresse mail de destination: ");
scanf("%s",&target);

strcat(expeditor,">");
strcat(expeditor,line_ret);
strcat(sender,expeditor);

dat=send(sock,sender,strlen(sender)+1,0);
if(dat){
printf("donnee de 'sender' envoyee au server");
}else{
perror("erreur sur send\n");}

le truc c'est que j'ai essayé de changer plusieurs fois la taille de données à envoyer (ici en 3eme argument de la fonction send()) comme sizeof(sender) par exemple mais apparemment la faute ne vient pas de là...pourriez-vous m'aider s'il vous plait je galère juste a cet endroit la ne sachant ou est l'erreur lors de la transmission des données...(j'ai fait un test avec les résultats de la concaténation mais rien n'y fait...)

logiquement les étapes de concaténation sont les suivantes:
sender-->"MAIL FROM: <"
expeditor -->"testf@hotmail.fr"
expeditor -->"test@hotmail.fr>"
expeditor -->"test@hotmail.fr>\r\n"
sender -->"MAIL FROM: <test@hotmail.fr>\r\n"

bonne soirée ;)

9 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
20 sept. 2010 à 10:47
salut, j'ai pas testé le code, mais ...
déjà, ce n'est pas HELO qu'il faut faire, mais EHLO

essayes deja ton code via telnet (telnet ton_serveur 25)

il est possible qu'il faille faire EHLO

je te conseille de faire comem sur la page wiki
https://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

de plus, au lieu de faire EHLO salut, je te conseille de faire EHLO suivi du nom du serveur qui t'a été renvoyé une ligne plus haut ...

tiens moi au courant

attention, si tu testes en telnet, pas de faute de frappe persmis (le retour chariot ne fonctionne pas)
1