Bonsoir, j'ai retrouvé sur mon premier pc (le pauvre qui date de 10ans ) un vieux script php qui permet de vérifier d'une par la synthaxe de l'adresse mail mais également l'existence de l'adresse mail.
Voici le 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
<?php 
// On déclare d'abord les fonctions:
 
// Si la fonction getmxrr n'existe pas (serveur windows),
// On la créé à l'aide de la commande DOS <nslookup>
if(!function_exists('getmxrr'))
{
	function getmxrr($hostname,&$mxhosts)
	{
		if(!is_array($mxhosts))
			$mxhosts = array();
		if( !empty( $hostname ) )
		{
			@exec( "nslookup -type=MX $hostname", $output, $ret );
			while( list( $k, $line ) = each( $output ) )
			{
				// On recherche la présence de d'entrées MX:
				if( ereg( "^{$hostname}\tMX preference = ([0-9]+), mail exchanger = (.*)$", $line, $parts ) )
				{
					$mxhosts[ $parts[1] ] = $parts[2];
				}
			}
			if( count( $mxhosts ) )
			{
				// S'il y a plusieurs enregistrements MX, on les classe par ordre de priorité
				reset( $mxhosts );
				ksort( $mxhosts );
				$i = 0;
				while( list( $pref, $host ) = each( $mxhosts ) )
				{	
					$mxhosts2[$i] = $host;
					$i++;
				}
				$mxhosts = $mxhosts2;
				return true;
			}else{
			 	return false;
			}
		}
	}
}
 
function mailCheck($Email)
{
	// L'adresse email doit être correctement formattée
	if(!eregi("^[[:alpha:]]{1}[[:alnum:]]*((\.|_|-)[[:alnum:]]+)*@[[:alpha:]]{1}[[:alnum:]]*((\.|-)[[:alnum:]]+)*(\.[[:alpha:]]{2,})$", $Email))
		exit('L\'adresse '.$Email.' est mal formatée');
	// On récupère le domaine
	list(,$domain ) = split('@',$Email); 
	// On cherche des enregistrements MX dans les DNS
	if (getmxrr($domain, $MXHost)) 
		$ConnectAddress = $MXHost[0];
	else
		$ConnectAddress = $domain;
	// On créé la connexion sur le port smtp (25)
	$Connect = @fsockopen($ConnectAddress,25,&$errno,&$errstr); 
	if($Connect)
	{
		if(ereg("^220", $Out = fgets($Connect, 1024)))
		{
			fputs ($Connect, "HELO {$_SERVER['HTTP_HOST']}\r\n");
			$Out = fgets ( $Connect, 1024 );
			fputs ($Connect, "MAIL FROM: <{$Email}>\r\n");
			$From = fgets ( $Connect, 1024 );
			fputs ($Connect, "RCPT TO: <{$Email}>\r\n");
			$To = fgets ($Connect, 1024);
			fputs ($Connect, "QUIT\r\n");
			fclose($Connect);
			// Si le code renvoyé par la commande RCPT TO est 250 ou 251 (cf: RFC)
			// Alors l'adresse existe
			if (!ereg ("^250", $To) && !ereg ( "^251", $To ))
				// Adresse rejetée par le serveur
				return false;
			else
				// Adresse acceptée par le serveur
				return true;
		}else{
			// Le serveur n'a pas répondu
			return false;
		}
	}else{
		// Connexion au serveur de messagerie impossible
		// vous pouvez afficher le message d'erreur en décommentant la ligne suivante:
		// echo $errno."-".$errstr;
		return false;
 
	}
}
 
// Définissez ici l'adresse à vérifier
$mail = adresse mail;
 
 
if(mailCheck($mail))
	echo 'L\'adresse existe';
else
	echo 'L\'adresse n\'existe pas ou une erreur est survenue';
?>
Le problème c'est que quand je teste avec une de mes adresses mails liés à mon nom de domaine, l'adresse est valide, par contre quand je tape une adresse n'existant pas, le code me renvoie le message, l'adresse existe alors que ce n'est pas le cas. Dites moi si il y a des erreurs dans ce script et si oui, ou sont-elles? Merci d'avance pour tous ceux qui m'aiderons.