i try with this code but it not send any mail to destination mail address. any one can help me to correct it ???!!!
#pragma comment(lib, "wsock32.lib")
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <iostream>
using namespace std;
bool EmailSMTP(char* hname, char* sndr, char* rece, char *sbj, char *usr, char *passwd, int port)
{
int iResult;
WSADATA wsaData;
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0) {
printf("WSAStartup failed: %d\n", iResult);
return 0;
}
int iProtocolPort = port;
char tekst[4096] = "";
SOCKET hServer;
LPHOSTENT lpHostEntry;
LPSERVENT lpServEntry;
SOCKADDR_IN SockAddr;
lpHostEntry = gethostbyname(hname);
if (!lpHostEntry)
{
cout << "Nie znaleziono hosta" << " Błąd" ;
return 0;
}
hServer = socket(PF_INET, SOCK_STREAM, 0);
if (hServer == INVALID_SOCKET)
{
cout << "Nie udało się utworzyć serwera." << " Błąd";
return 0;
}
lpServEntry = getservbyname("mail", 0);
if (!lpServEntry)
iProtocolPort = htons(IPPORT_SMTP);
else
iProtocolPort = lpServEntry->s_port;
SockAddr.sin_family = AF_INET;
SockAddr.sin_port = iProtocolPort;
SockAddr.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);
connect(hServer, (PSOCKADDR)&SockAddr, sizeof(SockAddr));
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "HELO\r\n");
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "AUTH LOGIN\r\n");
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "%s\r\n", usr);
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "%s\r\n", passwd);
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "MAIL FROM:<%s>\r\n", sndr);
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "RCPT TO:<%s>\r\n", rece);
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "DATA\r\n");
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "From: tester <%s>\r\n", sndr);
send(hServer, tekst, strlen(tekst), 0);
sprintf(tekst, "To: tester <%s>\r\n", rece);
send(hServer, tekst, strlen(tekst), 0);
sprintf(tekst, "Subject: %s\r\n", sbj);
send(hServer, tekst, strlen(tekst), 0);
sprintf(tekst, "\r\n.\r\n");
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
sprintf(tekst, "QUIT\r\n");
send(hServer, tekst, strlen(tekst), 0);
recv(hServer, tekst, sizeof(tekst), 0);
closesocket(hServer);
return 1;
}
int main()
{
EmailSMTP("mail.domain.com", "info@domain.com", "samplemail@gmail.com", "hello", "info", "password", 25);
return 0;
}
Thanks.