bonjour
j'ai essayé d'ecrire un programmme en c pour envoi de mail mais ça marche pas et je sais pas ou est le problème
mon programme se base sur des comparaisons de chaines de caractères et read et write(socket domaine AF_INET) pourquoi ça marche pas je sais pas voici le programme:
#include<stdio.h>
#include<sys/types.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<string.h>
#define MAXLINE 80
main()
{
char chaine1[MAXLINE+1]="HELO localhost.projetA.ma\0";
char chaine2[MAXLINE+1]="MAIL FROM:<root@projetA.ma\0";
char chaine3[MAXLINE+1]="RCPT TO:<nada@projetA.ma>\0";
char chaine4[MAXLINE+1]="DATA\0";
char chaine5[MAXLINE+1]="vous etes cible de spams\0";
char chaine6[MAXLINE+1]=". \0";
char chaine7[MAXLINE+1]="QUIT";
fprintf(stderr,"1");
int sockfd;
struct sockaddr_in serv_addr;
char adresse_ip[20];
char sendline[MAXLINE],recvline[MAXLINE + 1];
int n;
bzero((char *) &serv_addr,sizeof(serv_addr));
serv_addr.sin_family =AF_INET;
serv_addr.sin_port=htons(25);
serv_addr.sin_addr.s_addr=inet_addr("172.16.30.1");
if((sockfd = socket(AF_INET,SOCK_STREAM,0))<0)
{fprintf(stderr,"\n client : socket erreur");
exit(2);
}
fprintf(stderr,"2");
if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
{fprintf(stderr,"client: connect erreur \n");
exit(3);
}
fprintf(stderr,"3");
while(1)
{
n=read(sockfd,recvline,sizeof(recvline)+1);
fprintf(stderr,recvline);
fprintf(stderr,"5");
if(strstr(recvline,"220")!=NULL)
{fprintf(stderr,"6");
write(sockfd,chaine1,sizeof(chaine1));
fprintf(stderr,"7");
}
fprintf(stderr,recvline);
if(strstr(recvline,"sender ok")!=NULL)
{
fprintf(stderr,"7");
write(sockfd,chaine3,sizeof(chaine3));
fprintf(stderr,"7");
}
if(strstr(recvline,"Recipient ok")!=NULL)
{write(sockfd,chaine4,sizeof(chaine4));
fprintf(stderr,"8");
}
if(strstr(recvline,"by itself")!=NULL)
{ fprintf(stderr,"9");
write(sockfd,chaine5,sizeof(chaine5));
}
write(sockfd,chaine6,sizeof(chaine6));
if(strstr(recvline,"delivery")!=NULL)
{
fprintf(stderr,"10");
write(sockfd,chaine7,sizeof(chaine7));
}
}
shutdown(sockfd,0);
close(sockfd);
exit(0);
}
merci pour toute aide

