Code:
struct sockaddr_in A;WSADATA W;SOCKET S;struct hostent *H;
char aa[100];int i;char R[10000];
WSAStartup (0x101, &W);
S=socket(AF_INET, SOCK_STREAM,0);
A.sin_family=AF_INET;
A.sin_port = htons(25); // SMPT is on port 25
H=gethostbyname("yahoo.com"); // get info on the email server
cout<<"gethostbyname()"<<GetLastError()<<endl;
A.sin_addr.s_addr=*((unsigned long *) H->h_addr); // convert the SMTP sites address into a IPA and store
i=connect(S,(struct sockaddr *) &A,sizeof(A)); // connect to the server
cout<<"connect()"<<GetLastError()<<endl;
i=recv(S,R,10000,0); // wait until the connection establishes
cout<<"recv()[connect]"<<GetLastError()<<endl;
strset(aa,' ');
strcpy(R,"HELO P2V2E0\r\n"); // 1st command . computer name
i=send(S,R,strlen(R),0);
cout<<"send()"<<GetLastError()<<endl;
i=recv(S,R,10000,0);
cout<<"recv()[send]"<<GetLastError()<<endl;
strset(aa,' ');
strcpy(R,"MAIL FROM:<[email protected]>\r\n"); // our address
i=send(S,R,strlen(R),0);
i=recv(S,R,10000,0);
strset(aa,' ');
strcpy(R,"RCPT TO:<[email protected]>\r\n"); // recepients' address
i=send(S,R,strlen(R),0);
i=recv(S,R,10000,0);
strset(aa,' ');
strcpy(R,"DATA\r\n"); // email begins
i=send(S,R,strlen(R),0);
i=recv(S,R,10000,0);
strset(aa,' ');
strcpy(R,"TO: [email protected]\r\n");
//strcpy(R,"TO: aaa.com\r\n");
i=send(S,R,strlen(R),0);
strcpy(R,"FROM: [email protected]\r\n");
i=send(S,R,strlen(R),0);
strcpy(R,"DATE: 27 April 05 3:05 PST\r\n");
i=send(S,R,strlen(R),0);
strcpy(R,"MESSAGE_ID: <[email protected]>\r\n");
i=send(S,R,strlen(R),0);
strcpy(R,"Hello\r\n");
i=send(S,R,strlen(R),0);
strcpy(R,"How are you\r\n");
i=send(S,R,strlen(R),0);
strcpy(R,".\r\n"); // end the mail with a period
i=send(S,R,strlen(R),0);
i=recv(S,R,10000,0);
strset(aa,' ');
strcpy(R,"QUIT\r\n"); // end mail
i=send(S,R,strlen(R),0);
i=recv(S,R,10000,0);