Advertisement
Guest User

Untitled

a guest
Apr 9th, 2017
1,094
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. #include <WinSock2.h>
  2. #include <Windows.h>
  3. #include <stdio.h>
  4. #include <Windns.h>
  5. #include <Ws2tcpip.h>
  6.  
  7. #pragma comment(lib, "Dnsapi")
  8. #pragma comment(lib, "ws2_32")
  9. INT InitializeWINSOCK();
  10.  
  11. const char* SMTPSERVER = "gmail-smtp-in.l.google.com";
  12. const WORD SMTPPORT = 25;
  13. SOCKET Connect(const char * HostName, const char * Port);
  14.  
  15. int main()
  16. {
  17. DNS_RECORD *pQueryResults, *pQueryRec;
  18. ULONG Error =0;
  19. char Domain[] = "gmail.com";
  20.  
  21. if (ERROR_SUCCESS != DnsQuery_A(Domain,DNS_TYPE_MX,DNS_QUERY_STANDARD,NULL,&pQueryResults,NULL))
  22. {
  23. printf("Failed to dns lookup\n");
  24. return 1;
  25. }
  26.  
  27. pQueryRec = pQueryResults;
  28. while(pQueryRec)
  29. {
  30. if (pQueryRec->wType == DNS_TYPE_MX)
  31. {
  32. printf("%s\n", pQueryRec->Data.MX.pNameExchange);
  33. }
  34. pQueryRec = pQueryRec->pNext;
  35. }
  36.  
  37.  
  38. Connect(SMTPSERVER,"25");
  39.  
  40. printf("Done\n");
  41. fgetc(stdin);
  42.  
  43. return 0;
  44. }
  45.  
  46. INT InitializeWINSOCK()
  47. {
  48. WSADATA DATA = {0};
  49. return WSAStartup(MAKEWORD(2,2),&DATA) ? 0 : 1;
  50. }
  51.  
  52. #define DEFAULT_BUFLEN 512
  53.  
  54. SOCKET Connect(const char * HostName, const char * Port)
  55. {
  56.  
  57. WSADATA WsDt;
  58. WSAStartup(MAKEWORD(2,2),&WsDt);
  59. SOCKET Sk = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  60. sockaddr_in SkDt;
  61. ZeroMemory((char*)&SkDt,sizeof(sockaddr_in));
  62. SkDt.sin_port = htons(25);
  63. SkDt.sin_addr.S_un.S_addr = inet_addr("74.125.206.26");
  64. SkDt.sin_family = AF_INET;
  65. char RecvData[512];
  66. ZeroMemory(RecvData,512);
  67.  
  68. if(connect(Sk,(const sockaddr*)&SkDt,sizeof(sockaddr_in)) == -1)
  69. {
  70. MessageBoxA(0,"Cant",0,0);
  71. }
  72. if(recv(Sk,RecvData,512,0) != -1)
  73. {
  74. int a = 0;
  75. printf("%s\n", RecvData);
  76. send(Sk, "HELO local.doman.name\r\n", strlen("HELO local.doman.name\r\n"), 0);
  77. a = recv(Sk, RecvData, 512, 0);
  78. RecvData[a] = 0;
  79. printf("%s\n", RecvData);
  80. send(Sk, "MAIL FROM:<bob@example.org>\r\n", strlen("MAIL FROM:<bob@example.org>\r\n"), 0);
  81. a = recv(Sk, RecvData, 512, 0);
  82. RecvData[a] = 0;
  83. printf("%s\n", RecvData);
  84. send(Sk, "RCPT TO:<somegmail@gmail.com>\r\n", strlen("RCPT TO:<somegmail@gmail.com>\r\n"), 0);
  85. a = recv(Sk, RecvData, 512, 0);
  86. RecvData[a] = 0;
  87. printf("%s\n", RecvData);
  88. send(Sk, "DATA\r\n", strlen("DATA\r\n"), 0);
  89. a = recv(Sk, RecvData, 512, 0);
  90. RecvData[a] = 0;
  91. printf("%s\n", RecvData);
  92.  
  93. send(Sk, "From: \"Bob Example\" <bob@example.org>\r\n", strlen("From: \"Bob Example\" <bob@example.org>\r\n"), 0);
  94. send(Sk, "To: Alice Example <somegmail@gmail.com>\r\n", strlen("To: Alice Example <somegmail@gmail.com>\r\n"), 0);
  95. 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);
  96. send(Sk, "Subject: Test message\r\n", strlen("Subject: Test message\r\n"), 0);
  97. send(Sk, "\r\n", strlen("\r\n"), 0);
  98. send(Sk, "Hello Alice.\r\n.\r\n", strlen("Hello Alice.\r\n.\r\n"), 0);
  99. a = recv(Sk, RecvData, 512, 0);
  100. RecvData[a] = 0;
  101. printf("%s\n", RecvData);
  102.  
  103. }
  104. else
  105. {
  106. MessageBoxA(0,"Recv bad",0,0);
  107. }
  108. return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement