Salve a tutti sono un modestissimo programmatore c++ che ha iniziato da poco e ho un problema:
Tramite diverse guide sul web ho iniziato a sviluppare un programma che tramite le winsock si connette ad un server smtp di posta (in questo caso "smtp.net.vodafone.it") e permette di inviare email.
Leggendo e rileggendo diverse guide ho iniziato a capire le winsock fino ad arrivare a questo codice:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#include <iostream.h>
#include <winsock.h>
#include <string.h>
#include <mem.h>
#pragma hdrstop
char buff[256];
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
SOCKET clientsocket;
SOCKADDR_IN addr;
hostent * hostentrata;
char messaggio[80];
short port;
WORD wVersionRequested = MAKEWORD(2,2);
WSADATA wsaData;
int nLen=sizeof(SOCKADDR);
int ricv;
if (WSAStartup(wVersionRequested, &wsaData)!= NO_ERROR)
{
cout << "Errore di Inizializzazione" << endl;
goto fine;
}
port = 25;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("83.224.64.25");
addr.sin_port = htons(port);
clientsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (connect(clientsocket, (LPSOCKADDR)&addr, sizeof(addr)) < 0)
{
printf("Errore nella connessione con il Server\n");
goto fine;
}
dinuov:
memset(buff,0,sizeof(buff));
ricv=recvfrom(clientsocket,buff,sizeof(buff),0,(LP SOCKADDR)&addr, &nLen);
printf("%s\n",buff);
cout << "\t";
cin.get(messaggio, 256, '\n');
while (cin.get() != '\n');
strcpy(buff,messaggio);
sendto(clientsocket,buff,sizeof(buff),0,(LPSOCKADD R)&addr, nLen);
goto dinuov;
fine:
system("pause");
}
//---------------------------------------------------------------------------
All'inizio era un po diverso ma mi dava lo stesso inspiegabile problema: Appena connesso al server smtp di vodafone ricevo il nome del server e i vari parametri verificati anche con telnet.
Come invio la stringa di autenticazione "helo nomemiocomputer" il server mi risponde con "pleased to meet you". Fin ora tutto normale ma quando invio un altro messaggio il server mi dice (500 5.5.1 Command unrecognized: ""). Da quanto mi è sembrato di capire il server riceve una stringa nulla. Potete aiutarmi!!!