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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.