T
bei so vielen nachfragen poste ich den code :
#include <windows.h>
#include <winsock.h>
#pragma comment (lib, "wsock32.lib")
#define HELO_MAX 4
BOOL fHeloSenden (SOCKET) ;
BOOL fBodySenden (SOCKET) ;
BOOL fQuitSenden (SOCKET) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){
struct sockaddr_in server ;
SOCKET sock ;
char command[200],
buff[100],
szHost[] = "mail.gmx.net" ;
unsigned int iFor,
iEmpfangen ;
short wVersionRequested ;
WSADATA wsaData ;
struct hostent *he ;
ZeroMemory (&server, sizeof (sockaddr_in)) ;
wVersionRequested = MAKEWORD (1, 1) ;
WSAStartup (wVersionRequested, &wsaData) ;
if (!(he = gethostbyname (szHost))){
MessageBox (NULL, "gethostbyname", "Fehler", NULL) ;
return 1 ;
}
if (he->h_addrtype != AF_INET){
MessageBox (NULL, "AF_INET", "Fehler", NULL) ;
return 2 ;
}
if (!he->h_addr_list[0]){
MessageBox (NULL, "he->h_addr_list[0]", "Fehler", NULL) ;
return 3 ;
}
server.sin_family = AF_INET ;
server.sin_port = htons (25) ;
server.sin_addr = *(struct in_addr*) he->h_addr_list[0] ;
if ((sock = socket (PF_INET, SOCK_STREAM, 0)) == -1){
MessageBox (NULL, "socket", "Fehler", NULL) ;
return 4 ;
}
if (connect (sock, (struct sockaddr*) &server, sizeof (struct sockaddr)) < 0){
MessageBox (NULL, "connect", "Fehler", NULL) ;
return 5 ;
}
fHeloSenden (sock) ;
fBodySenden (sock) ;
fQuitSenden (sock) ;
closesocket (sock) ;
WSACleanup () ;
return 0 ;
}
BOOL fHeloSenden (SOCKET sock){
char *smtp[] = {
"HELO tescik\r\n",
"MAIL FROM: <email@email.de>\r\n",
"RCPT TO: <email@email.de>\r\n",
"DATA\r\n",
"From: ich\r\nTo: ich\r\nSubject: Test\r\n"} ;
char command[100],
buff[100] ;
unsigned int iEmpfangen = 0,
iFor = 0 ;
for(iFor = 0; iFor <= HELO_MAX; iFor++){
strcpy (command, smtp[iFor]) ;
send (sock, command, lstrlen (command), 0) ;
if (iFor != HELO_MAX){
iEmpfangen = recv (sock, buff, sizeof (buff), 0) ;
buff[iEmpfangen] = '\0' ;
MessageBox (NULL, (LPTSTR) buff, "empfang", NULL) ;
}
}
return 0 ;
}
BOOL fBodySenden (SOCKET sock){
char *smtp[] = {
"Mime-Version: 1.0\r\n",
"Content-Type: multipart/mixed; boundary=\"IstEineID\"\r\n\r\n",
"--IstEineID\r\n",
"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n",
"Content-Transfer-Encoding: 7bit\r\n\r\n",
"Teil 1 der email\r\n",
"--IstEineID\r\n",
"Content-Type: text/plain; charset=\"US-ASCII\"\r\n\r\n",
"Teil 2 der email (so zu sagen anhang... hehehe)\r\n",
"--IstEineID--"} ;
char command[100],
buff[100] ;
unsigned int iEmpfangen = 0,
iFor = 0 ;
for(iFor = 0; iFor <= 9; iFor++){
strcpy (command, smtp[iFor]) ;
send (sock, command, lstrlen (command), 0) ;
}
return 0 ;
}
BOOL fQuitSenden (SOCKET sock){
char *smtp[] = {
"\r\n.\r\n",
"QUIT\r\n",
"QUIT\r\n"} ;
char command[100],
buff[100] ;
unsigned int iEmpfangen = 0,
iFor = 0 ;
for(iFor = 0; iFor <= 2; iFor++){
strcpy (command, smtp[iFor]) ;
send (sock, command, lstrlen (command), 0) ;
iEmpfangen = recv (sock, buff, sizeof (buff), 0) ;
buff[iEmpfangen] = '\0' ;
MessageBox (NULL, (LPTSTR)buff, "empfang", NULL) ;
}
return 0 ;
}
mfg
toom