Bonjour
donc voila j'ai un probleme . Je me suis mis a programmer depuis pas longtemps donc il y as encore certains points que je connais pas parfaitement et il y a quelques temps j'ai eu envie d'écrire un client mail en C donc j'ai regardé des tuto sur les socket et le SMTP jai commencé a ecrire mon programme et quand jai commencé a le compiler j'ai vu que j'arrivais pas à faire un HELO avec le serveur smtp.
j'ai essayé avec EHLO pareil et la ca fait quand meme longtemps que jarrive pas a résoudre mon probleme donc vu mon niveau en programmation je me suis dit que ca serais peut etre pas con de demander conseil a des gens plus experimenté que moi ^^.
Voici le code :
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
int main(int argc, char* argv[])
{
WSADATA wsaData;
int my_socket,res,envoi,reception;
WSAStartup(MAKEWORD(2,0), &wsaData);
char *buff[1024] ;
char bonjour = "HELO <sim> <\r \n>";
char *mailfrom = "MAIL FROM: <xxx@wanadoo.fr> \r \n";
my_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
struct sockaddr_in adressesocket;
adressesocket.sin_family = AF_INET;
adressesocket.sin_port = htons(25);
adressesocket.sin_addr.S_un.S_addr = inet_addr("80.12.242.52");
if (( res = connect(my_socket,(struct sockaddr *) &adressesocket,sizeof(adressesocket))) !=0)
{
printf ("erreur lors de la connection du socket \n ");
system("PAUSE");
return 0;
}
printf ("connexion reussie \n");
recv (my_socket,buff,sizeof(buff),0);
printf ("%s \n",buff);
if (( envoi = send (my_socket,bonjour,strlen(buff),0)) != strlen(bonjour));
{
printf ("erreur lors de l'envoi du HELO\n");
system ("PAUSE");
return 0;
}
recv (my_socket,buff,sizeof(buff),0);
printf ("%s \n",buff);
system("PAUSE");
send (my_socket,mailfrom,sizeof(buff),0);
recv (my_socket,buff,sizeof(buff),0);
puts (buff);
return 0;
}