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.
Partager