Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WinSock2.h>
- #include <Windows.h>
- #include <stdio.h>
- #include <Windns.h>
- #include <Ws2tcpip.h>
- #pragma comment(lib, "Dnsapi")
- #pragma comment(lib, "ws2_32")
- INT InitializeWINSOCK();
- const char* SMTPSERVER = "gmail-smtp-in.l.google.com";
- const WORD SMTPPORT = 25;
- SOCKET Connect(const char * HostName, const char * Port);
- int main()
- {
- DNS_RECORD *pQueryResults, *pQueryRec;
- ULONG Error =0;
- char Domain[] = "gmail.com";
- if (ERROR_SUCCESS != DnsQuery_A(Domain,DNS_TYPE_MX,DNS_QUERY_STANDARD,NULL,&pQueryResults,NULL))
- {
- printf("Failed to dns lookup\n");
- return 1;
- }
- pQueryRec = pQueryResults;
- while(pQueryRec)
- {
- if (pQueryRec->wType == DNS_TYPE_MX)
- {
- printf("%s\n", pQueryRec->Data.MX.pNameExchange);
- }
- pQueryRec = pQueryRec->pNext;
- }
- Connect(SMTPSERVER,"25");
- printf("Done\n");
- fgetc(stdin);
- return 0;
- }
- INT InitializeWINSOCK()
- {
- WSADATA DATA = {0};
- return WSAStartup(MAKEWORD(2,2),&DATA) ? 0 : 1;
- }
- #define DEFAULT_BUFLEN 512
- SOCKET Connect(const char * HostName, const char * Port)
- {
- WSADATA WsDt;
- WSAStartup(MAKEWORD(2,2),&WsDt);
- SOCKET Sk = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
- sockaddr_in SkDt;
- ZeroMemory((char*)&SkDt,sizeof(sockaddr_in));
- SkDt.sin_port = htons(25);
- SkDt.sin_addr.S_un.S_addr = inet_addr("74.125.206.26");
- SkDt.sin_family = AF_INET;
- char RecvData[512];
- ZeroMemory(RecvData,512);
- if(connect(Sk,(const sockaddr*)&SkDt,sizeof(sockaddr_in)) == -1)
- {
- MessageBoxA(0,"Cant",0,0);
- }
- if(recv(Sk,RecvData,512,0) != -1)
- {
- int a = 0;
- printf("%s\n", RecvData);
- send(Sk, "HELO local.doman.name\r\n", strlen("HELO local.doman.name\r\n"), 0);
- a = recv(Sk, RecvData, 512, 0);
- RecvData[a] = 0;
- printf("%s\n", RecvData);
- send(Sk, "MAIL FROM:<bob@example.org>\r\n", strlen("MAIL FROM:<bob@example.org>\r\n"), 0);
- a = recv(Sk, RecvData, 512, 0);
- RecvData[a] = 0;
- printf("%s\n", RecvData);
- send(Sk, "RCPT TO:<somegmail@gmail.com>\r\n", strlen("RCPT TO:<somegmail@gmail.com>\r\n"), 0);
- a = recv(Sk, RecvData, 512, 0);
- RecvData[a] = 0;
- printf("%s\n", RecvData);
- send(Sk, "DATA\r\n", strlen("DATA\r\n"), 0);
- a = recv(Sk, RecvData, 512, 0);
- RecvData[a] = 0;
- printf("%s\n", RecvData);
- send(Sk, "From: \"Bob Example\" <bob@example.org>\r\n", strlen("From: \"Bob Example\" <bob@example.org>\r\n"), 0);
- send(Sk, "To: Alice Example <somegmail@gmail.com>\r\n", strlen("To: Alice Example <somegmail@gmail.com>\r\n"), 0);
- send(Sk, "Date: Tue, 15 January 2008 16:02:43 -0500\r\n", strlen("Date: Tue, 15 January 2008 16:02:43 -0500\r\n"), 0);
- send(Sk, "Subject: Test message\r\n", strlen("Subject: Test message\r\n"), 0);
- send(Sk, "\r\n", strlen("\r\n"), 0);
- send(Sk, "Hello Alice.\r\n.\r\n", strlen("Hello Alice.\r\n.\r\n"), 0);
- a = recv(Sk, RecvData, 512, 0);
- RecvData[a] = 0;
- printf("%s\n", RecvData);
- }
- else
- {
- MessageBoxA(0,"Recv bad",0,0);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement