Witam, mam oto kod programu, nie wiem dlaczego maile nie dochodzą do adresata. Miło by było, gdyby ktoś nakierował mnie na to co tu jest nie tak.
#include <winsock2.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#define host "poczta.o2.pl"
#define port 25
int main()
{
WORD Wersja; //WORD -> unsigned short int
WSADATA WData; //obsługa socketów
SOCKET s; //gniazgo
struct hostent *he; //host
char odpowiedz[256];
system("cls");
//system("Pause");
Wersja = MAKEWORD(2, 0); //MAKEWORD przerabia inty na word
if (WSAStartup(Wersja, &WData) != 0) //inicjalizacja
{
printf("Blad inicjalizacji WinSock2\n");
WSACleanup(); //sprząta śmieci po socketach
return 1;
}
he = gethostbyname(host); //pobieranie hosta
if (he == NULL)
{
printf("Nie znaleziono hosta.\n");
system("PAUSE");
return 1;
}
else
{
printf("Znalazlem hosta.\n");
}
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //ustawienie socketa nasluchu; jaki protokół i tryb
struct sockaddr_in sin; //tworzymy zmienna
sin.sin_family = AF_INET;//ustawiamy protokól
sin.sin_addr.s_addr = *((unsigned long*) he->h_addr); //aders połączenia
sin.sin_port = htons(port); //nr portu
printf("laczenie...\n");
connect(s,(struct sockaddr*)&sin,sizeof(sin)); //nawiązanie połączenia
//rozmowa z serwerem
send(s,"HELO <poczta.o2.pl>\r\n",strlen("HELO <poczta.o2.pl>\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
//recv(s,odpowiedz,sizeof(odpowiedz),0);
// printf("odpowiedz%d\n",odpowiedz);
send(s,"AUTH LOGIN \r\n",strlen("AUTH LOGIN\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"Login kodowany w base64\r\n",strlen("Login kodowany w base64\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"Haslo kodowane w Base64\r\n",strlen("Haslo kodowane w Base64\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"MAIL From: <[email protected]>\r\n",strlen("MAIL From: <[email protected]>\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"RCPT To: <[email protected]>\r\n",strlen("RCPT To: <[email protected]>\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"DATA\r\n",strlen("DATA\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"siema",strlen("siema"),0);
send(s,"czesc.\r\n",strlen("czesc.\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
send(s,"QUIT\r\n",strlen("QUIT\r\n"),0);
recv(s,odpowiedz,sizeof(odpowiedz),0);
closesocket(s); //zamknięcie socketa
WSACleanup();
printf("zrobione");
getch();
}