Bonjour,

J'ai lu des posts concernant l'authentification pour envoi de mail sortant (smtp), mais aucun n'a pu m'aider.

J'utilise du code :

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
 
int not = 0;
	unsigned long ioctl_blocking = 1;
 
	WSADATA wsaData;
	if( int err = WSAStartup( 0x0101, &wsaData ) )
	{
	     return 0;
	}
 
	struct sockaddr_in   serverSockAddr;    // addresse de la socket
	struct hostent     * serverHostEnt;     // description du host serveur
	long                 hostAddr;          // addr du serveur
 
	Effacer( &serverSockAddr, sizeof( serverSockAddr ) );
	// converti l'adresse ip du serveur en entier long
	hostAddr = inet_addr( nom_serveur );
 
	if( ( long ) hostAddr != ( long ) -1 )
		Dupliquer( &hostAddr, &serverSockAddr.sin_addr, sizeof( hostAddr ) );
	else               // si on a donne un nom
	{
		serverHostEnt = gethostbyname( nom_serveur );
		if ( serverHostEnt == NULL )
		{
	     	     return 0;
		}
		Dupliquer( serverHostEnt->h_addr, &serverSockAddr.sin_addr,serverHostEnt->h_length );
	}
 
	serverSockAddr.sin_port = htons( port );         // host to network port
	serverSockAddr.sin_family = AF_INET;             // AF_*** : INET=internet
	// creation de la socket
 
	to_server_socket = socket( AF_INET, SOCK_STREAM, 0 );
	if ( to_server_socket < 0)
	{
	     return 0;
	}
 
	setsockopt(to_server_socket, SOL_SOCKET, SO_DONTLINGER, (char *) &not, sizeof(not));
 
	// requete de connexion
	if( connect( to_server_socket, ( struct sockaddr * ) &serverSockAddr,sizeof( serverSockAddr ) ) < 0 )
	{
	     return 0;
	}
 
	ioctlsocket ( to_server_socket, FIONBIO, &ioctl_blocking );
	return 1;
Cela fonctionne parfaitement lorsque je n'ai pas besoin de m'authentifier auprès du serveur smtp.

Comment ajouter l'option d'authentification ?

Merci de vos réponses