Advertisement
Guest User

Untitled

a guest
Jul 31st, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. #include <winsock2.h>
  2. #include <windows.h>
  3. #include <stdio.h>
  4.  
  5. void SendMail(const char* _From, const char* _To, const char* _SMTP,
  6. const char* _Subject, const char* _MessageFormat, ...) {
  7. int iProtocolPort = 0;
  8. char szBuffer[4096] = "";
  9. SOCKET hServer;
  10. LPHOSTENT lpHostEntry;
  11. LPSERVENT lpServEntry;
  12. SOCKADDR_IN SockAddr;
  13.  
  14. lpHostEntry = gethostbyname(_SMTP);
  15. if(!lpHostEntry) return ;
  16.  
  17. if(hServer == INVALID_SOCKET) return ;
  18.  
  19. lpServEntry = getservbyname("mail", 0);
  20.  
  21. if(!lpServEntry) iProtocolPort = htons(IPPORT_SMTP);
  22. else iProtocolPort = lpServEntry->s_port;
  23.  
  24. SockAddr.sin_family = AF_INET;
  25. SockAddr.sin_port = iProtocolPort;
  26. SockAddr.sin_addr = *((LPIN_ADDR) *lpHostEntry->h_addr_list);
  27.  
  28.  
  29. connect(hServer, (PSOCKADDR) &SockAddr, sizeof(SockAddr));
  30. printf("%d\n", WSAGetLastError());
  31. return ;
  32.  
  33. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  34.  
  35. sprintf(szBuffer, "HELO %s\r\n", _SMTP);
  36. send(hServer, szBuffer, strlen(szBuffer), 0);
  37. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  38.  
  39. sprintf(szBuffer, "MAIL FROM:<%s>\r\n", _From);
  40. send(hServer, szBuffer, strlen(szBuffer), 0);
  41. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  42.  
  43. sprintf(szBuffer, "RCPT TO:<%s>\r\n", _To);
  44. send(hServer, szBuffer, strlen(szBuffer), 0);
  45. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  46.  
  47. sprintf(szBuffer, "DATA\r\n");
  48. send(hServer, szBuffer, strlen(szBuffer), 0);
  49. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  50.  
  51. sprintf(szBuffer, "Subject: %s\n", _Subject);
  52. send(hServer, szBuffer, strlen(szBuffer), 0);
  53.  
  54. sprintf(szBuffer, "From: %s\n", _From);
  55. send(hServer, szBuffer, strlen(szBuffer), 0);
  56.  
  57. sprintf(szBuffer, "To: %s\n\n", _To);
  58. send(hServer, szBuffer, strlen(szBuffer), 0);
  59.  
  60. va_list message_parts;
  61. va_start(message_parts, _MessageFormat);
  62. char message[65536];
  63. vsprintf(message, _MessageFormat, message_parts);
  64. va_end(message_parts);
  65.  
  66. send(hServer, message, strlen(message), 0);
  67.  
  68. sprintf(szBuffer, "\r\n.\r\n");
  69. send(hServer, szBuffer, strlen(szBuffer), 0);
  70. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  71.  
  72. sprintf(szBuffer, "QUIT\r\n");
  73. send(hServer, szBuffer, strlen(szBuffer), 0);
  74. recv(hServer, szBuffer, sizeof(szBuffer), 0);
  75.  
  76. closesocket(hServer);
  77.  
  78. return ;
  79. }
  80.  
  81. int main(void) {
  82.  
  83. WSADATA wsaData;
  84. int iResult;
  85.  
  86. iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
  87.  
  88. if(!SendMail("juip782@gmail.com", "juip782@gmail.com", "smtp.googlemail.com", "buka", "buka")) printf("abc\n");
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement