Write your own program to Read and Send E-Mails


Sending Mail
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
void abc(char *p)
{       FILE *fp=fopen("d:\\mail\\z.txt","a+");
        fprintf(fp,"%s\n",p);
        fclose(fp);
}
struct sockaddr_in A;
WSADATA W;
SOCKET S;
char aa[100];
int i;
struct hostent *H;
char R[10000];
int _stdcall WinMain(HINSTANCE ii, HINSTANCE j, char *k, int l)
{
  WSAStartup (0x101, &W);
  S = socket(AF_INET, SOCK_STREAM,0);
  A.sin_family=AF_INET;
  A.sin_port = htons(25);
  H=gethostbyname("giasbm01.vsnl.net.in");
  A.sin_addr.s_addr=*((unsigned long *) H->h_addr);
  i=connect(S,(struct sockaddr *) &A,sizeof(A));
  sprintf(aa,"connect %d",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"HELO vijay.com\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"MAIL FROM:\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"RCPT  TO:\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"DATA\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"To: aaa.com\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  strcpy(R,"FROM: vijay1@giasbm01.vsnl.net.in\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  strcpy(R,"DATE: 10 Jan 95 13:24 PST\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  strcpy(R,"MESSAGE_ID: <123@e.com>\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  strcpy(R,"SONAL\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  strcpy(R,"MALINI\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  strcpy(R,".\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"QUIT\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  return 0;
}

Receiving Mail
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
void abc(char *p)
{       FILE *fp=fopen("d:\\mail\\z.txt","a+");
        fprintf(fp,"%s\n",p);
        fclose(fp);
}
struct sockaddr_in A;
WSADATA W;
SOCKET S;
char aa[60000];
int i;
struct hostent *H;
char R[60000];
int _stdcall WinMain(HINSTANCE ii, HINSTANCE j, char * k, int l)
{
  WSAStartup (0x101, &W);
  S = socket(AF_INET, SOCK_STREAM,0);
  A.sin_family=AF_INET;
  A.sin_port = htons(110);
  H=gethostbyname("giasbm01.vsnl.net.in");
  A.sin_addr.s_addr=*((unsigned long *) H->h_addr);
  i=connect(S,(struct sockaddr *) &A,sizeof(A));
  sprintf(aa,"connect %d",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"USER vmukhi\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"PASS abc101d\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"STAT\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,10000,0);
  sprintf(aa,"recv %d R %s",i,R);
  abc(aa);
  strcpy(R,"RETR 790\r\n");
  i=send(S,R,strlen(R),0);
  sprintf(aa,"send %d ",i);
  abc(aa);
  i=recv(S,R,60000,0);
  sprintf(aa,"recv %d ",i);
  abc(aa);
  sprintf(aa,"R...... %s",R);
  abc(aa);
  i=recv(S,R,60000,0);
  sprintf(aa,"recv %d ",i);
  abc(aa);
  sprintf(aa,"R...... %s",R);
  abc(aa);
  i=recv(S,R,60000,0);
  sprintf(aa,"recv %d ",i);
  abc(aa);
  sprintf(aa,"R...... %s",R);
  abc(aa);
  return 0;
}

Send us your feedback,comments .. on the above topic . Select a topic from the WinSock Programming Page and write your own Browser , E-Mail Reader .... or just move back to the Vijay Mukhi's Technology Cornucopia Page for the other tutorials.
Vijay Mukhi's Computer Institute
VMCI, B-13, Everest Building, Tardeo, Mumbai 400 034, India
e-mail : vmukhi@giasbm01.vsnl.net.in
http://www.vijaymukhi.com

Tel : 91-22-496 4335 /6/7/9
Fax : 91-22-307 28 59