Вот ещё вроде как так можно, но это какой-то имхо более старый вариант, и я не знаю как тут приаттачить файл. Люди, помогите ламеру!
Код | WSADATA ws; SOCKET s; struct sockaddr_in addr; hostent *d_addr; char text[512]; int main() { (WSAStartup (MAKEWORD( 1,1 ), &ws)); s = socket (AF_INET, SOCK_STREAM, 0); d_addr = gethostbyname ("smtp.yandex.ru"); addr.sin_family = AF_INET; addr.sin_addr.s_addr = *((unsigned long *) d_addr->h_addr); addr.sin_port = htons (25); if (SOCKET_ERROR == (connect (s, (sockaddr *) &addr, sizeof (addr)))) { printf("Error in connect(...)\n"); return 1; } recv(s,text,sizeof(text),0); strcpy(text,"EHLO smtp.yandex.ru\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"AUTH login\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"Ëîãèí â base64\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"Ïàðîëü â base64\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"MAIL FROM: [email protected]\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"RCPT TO: [email protected]\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"DATA\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"FROM: [email protected]\r\n"); send(s,text,strlen(text),0); strcpy(text,"TO: [email protected]\r\n"); send(s,text,strlen(text),0); strcpy(text,"SUBJECT: òåìà\r\n"); send(s,text,strlen(text),0); strcpy(text,"Ñîîáùåíèå\n"); send(s,text,strlen(text),0); strcpy(text,"\r\n.\r\n"); send(s,text,strlen(text),0); recv(s,text,sizeof(text),0); strcpy(text,"QUIT"); send(s,text,strlen(text),0); closesocket(s); return 0; }
|
|