Habe Problem mit SMTP

cesupa

Erfahrenes Mitglied
Hallo,

ich wollt mal versuchsweise einen einfachen SMTP-Client in C++ unter Windows mit dem Dev-C++ programmieren und habe mir als SMTP-Server smtp.web.de ausgewählt. Wenn ich mich über telnet mit dem Server verbinde bekomme ich eine Antwort vom Server zurück, jetzt habe ich ein Programm geschrieben, das sich auch mit dem Server verbindet und dann auf eine Antwort wartet. Das vernbinden klappt einwandfrei, jedoch erhalte ich danach keine Antwort vom Server.
Meine Frage: Muss ich dem Server noch irgendwas senden bevor er mir antwortet?

Gruß
cesupa
 
Da liegt ja gerade mein problem, egal was ich sende, ich erhalte einfach keine Antowrt. Vielleicht liegt ja auch ein Fehler im code:

Code:
SOCKET s;
    int fehler,n;
    char buf[1024];
    
    fehler=client_init(s,"217.72.192.157",25,AF_INET,SOCK_STREAM,0); //Verbindung zu smtp.web,de herstellen
    cout<<fehler_text(fehler)<<endl;//Fehler-ID auswerten aund ausgeben
    cout<<"Sende: HELO smtp.web.de"<<endl;
    n=send(s,"HELO smtp.web.de",16,0);//HELO senden
    cout<<n<<" Zeichen gesendet!"<<endl;
    n=empf(s,buf,255,0);//Antwort empfangen
    cout<<"Server antwortet:"<<buf<<endl;//und ausgeben

int client_init(SOCKET& c,char ip[32],int port,int family,int type,int protocol)
 {
     long rc;
     SOCKADDR_IN addr;
     
     rc=startwsa();
     
     c=socket(family,type,protocol);
     if(c==INVALID_SOCKET)
     return -1;
     
     memset(&addr,0,sizeof(SOCKADDR_IN));
     addr.sin_family=family;
     addr.sin_addr.s_addr=inet_addr(ip);
     addr.sin_port=htons(port);
     
     if(connect(c,(SOCKADDR*)&addr,sizeof(SOCKADDR))==SOCKET_ERROR)
     return -2;
     
     return 1;
     
 }

int empf(SOCKET s,char* buf,int size,int prot)
{
    int z,ges;
    z=0;
    ges=0;
do{
    z=recv(s,buf,size,prot);
    ges=+z;
}while(z>0);
return ges;
}

So, das ist mein code samt den Funktionen, vielleicht hab ich ja auch hier schon einen Fehler drin.

Gruß
cesupa
 
Okay, hab grad gesehen, dass meine Empfangsroutine fehlerhaft ist:-) .
Habs jetzt aber hingekiregt.
Danke für eure Hilfe.

Gruß
cesupa
 
Zurück