Connection au serveur smtp impossible
Bonjour à vous,
J'essai de faire une appli MFC qui envoie un mail toute seule... Pas de quoi faire clap clap quoi...
Toutefois j'ai de grosses difficultés à me connecter au serveur smtp en question... J'en ai essayé plusieurs à tout hasard mais rien y fait...
Je vous présente mon code ci-dessous pour mieux visualiser le problème :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
void CEMailingDlg::OnSendMail()
{
SOCKADDR_IN SockAddr;
HOSTENT *ServerHost;
SOCKET s;
// Init Socket
WSAData wsa;
WSAStartup(MAKEWORD(2,0), &wsa);
//Get server host
if ( ( ServerHost = gethostbyname("smtp.gmail.com") ) == NULL )
{
AfxMessageBox("Serveur non trouvé");
return;
}
// Create socket
if ( (s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET )
{
AfxMessageBox("Impossible de créer la socket");
return;
}
// Connect the socket to the SMTP server on port 25
SockAddr.sin_addr.s_addr = *((ULONG*)ServerHost->h_addr_list[0]);
SockAddr.sin_port=htons(25); // port 25!
SockAddr.sin_family = AF_INET;
if ( connect( s, (sockaddr *) &SockAddr, sizeof(SockAddr) ) < 0 ) // Il essaie il essaie mais finit par abandonner...
{
switch(WSAGetLastError())
{
case WSANOTINITIALISED : AfxMessageBox("Impossible de se connecter au serveur smtp (WSANOTINITIALISED)");
break;
case WSAENETDOWN : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAENETDOWN)");
break;
case WSAEADDRINUSE : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEADDRINUSE)");
break;
case WSAEINTR : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEINTR)");
break;
case WSAEINPROGRESS : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEINPROGRESS)");
break;
case WSAEALREADY : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEALREADY)");
break;
case WSAEADDRNOTAVAIL : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEADDRNOTAVAIL)");
break;
case WSAEAFNOSUPPORT : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEAFNOSUPPORT)");
break;
case WSAECONNREFUSED : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAECONNREFUSED)");
break;
case WSAEFAULT : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEFAULT)");
break;
case WSAEINVAL : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEINVAL)");
break;
case WSAEISCONN : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEISCONN)");
break;
case WSAENETUNREACH : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAENETUNREACH)");
break;
case WSAEHOSTUNREACH : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEHOSTUNREACH)"); // C'est la qu'il atterrit !!! :(
break;
case WSAENOBUFS : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAENOBUFS)");
break;
case WSAENOTSOCK : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAENOTSOCK)");
break;
case WSAETIMEDOUT : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAETIMEDOUT)");
break;
case WSAEWOULDBLOCK : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEWOULDBLOCK)");
break;
case WSAEACCES : AfxMessageBox("Impossible de se connecter au serveur smtp (WSAEACCES)");
break;
}
AfxMessageBox ("Impossible de se connecter au serveur smtp");
return;
}
// pas la peine d'aller plus loin...
} |
Cà coince donc sur la méthode "connect"... Mais pourquoi ??, Telle est ma question... :s
Si quelqu'un a une idée sur ce qu'il me manque ou ce que j'ai mal compris en lisant d'autres codes...? Merci d'avance.