[PHP] Pinguer une adresse mail

  • Auteur de la discussion Auteur de la discussion mr_go
  • Date de début Date de début
WRInaute passionné
Bonjour,

afin de me prémunir au maximum contre le spam, je me demandais si il existait une fonction ou une classe permettant d'avoir un code de retour du serveur SMTP (de même que pour le http qui génére un code 200) pour une adresse mail.

exemple :

- mavraiadresse@example.com retourne un code (equivalent 200 pour les serveurs http)
- fausseadresse@example.com retourne un code différent (equivalent 404)

Bmerki ;)

Edit :

petite précision pour l'exemple, je souhaite bien évidemment effectuer ce type d'action
return (fonction_ping_email($email));
 
WRInaute discret
tu veux verifier si l'email est réélement valable ?
Il existe une fonction php qui test si un domaine existe.
Te reste juste a predre tout ce qui a derrier le @ et à lui concatener le www.
Puis a vérifier cette adresse.
Par contre désole, je connais pas le nom de la fonction.
 
WRInaute passionné
Ah ok, c'est déjà une bonne indication.
Merci je vais fouiller un peu dans la doc PHP.

Bien évidemment si quelqu'un connait une méthode permettant de connaitre la validité "intégrale" de l'email, je suis preneur...
;)
 
WRInaute accro
afin d'éviter le spam, tu peux, a chaque envoi d'un formulaire de ton site", envoyer un message à confirmer sur l'email de l'expéditeur
 
WRInaute passionné
J'y ai pensé et je l'utilise.

Le problème est que dans le cas qui m'interresse à savoir le module "envoyer cette url à vos contact", cela risque d'être fort génant pour l'internaute.
 
WRInaute accro
j'utilise cette fonction:
Code:
<?php
function validateEmail($email) {
	if(	(preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) ||
		(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ){
		
		$host = explode('@', $email);
		if(checkdnsrr($host[1].'.', 'MX') ) return true;
		if(checkdnsrr($host[1].'.', 'A') ) return true;
		if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
	}
	return false;
}
?>

la fonction checkdnsrr() n'existant pas dans windows:
Code:
<?php
/*checkdnsrr() pour windows*/
if (!function_exists('checkdnsrr')) {
	function checkdnsrr($host, $type = '') {
		if(!empty($host)) {
			if($type == '') $type = "MX";
			@exec("nslookup -type=$type $host", $output);
			while(list($k, $line) = each($output)) {
				if(eregi("^$host", $line)) return true;
			}
			return false;
		}
	}
}
?>

Enjoy ;)
 
WRInaute occasionnel
Code:
if(checkdnsrr($host[1].'.', 'MX') ) return true;
if(checkdnsrr($host[1].'.', 'A') ) return true;
if(checkdnsrr($host[1].'.', 'CNAME') ) return true;
Pourquoi retourner true si le domaine à un A NAME ou un CNAME mais pas de MX ?

Nicolas.
 
WRInaute discret
normalement, c'est la requete VRFY à envoyer au serveur mail pour savoir si le compte est existant ou pas. mais cette commande est désactivable, et d'ailleurs souvent désactivé sur tous les serveurs mails bien configurés.
 
Nouveau WRInaute
et donc une solution envisageable pour ce problème ?
si pour tester une adresse mail, on est obligé d'envoyer un mail.. c'est un peu génant :D
 
WRInaute discret
iD.NicKy a dit:
et donc une solution envisageable pour ce problème ?
si pour tester une adresse mail, on est obligé d'envoyer un mail.. c'est un peu génant :D

Oui mais c'est la seule solution valable... Tous les FAI désactivent cette option afin de prévenir du spam justement !
 
WRInaute impliqué
spijoelx a dit:
normalement, c'est la requete VRFY à envoyer au serveur mail pour savoir si le compte est existant ou pas. mais cette commande est désactivable, et d'ailleurs souvent désactivé sur tous les serveurs mails bien configurés.

C'est pire il me semble que beaucoup de serveur sont configurés pour répondre tout est ok au demande de vérifs reçues

A+
 
WRInaute impliqué
spijoelx a dit:
normalement, c'est la requete VRFY à envoyer au serveur mail pour savoir si le compte est existant ou pas. mais cette commande est désactivable, et d'ailleurs souvent désactivé sur tous les serveurs mails bien configurés.

Voir les serveur configurés pour accepter tous les mails ( cf la config d'Exchange chez Oléane par exemple ) et qui ramènent ensuite un message pour dire que l'adresse n'existe pas.

Ou les catch-all qui accepteront aussi tous les mails.
 
Nouveau WRInaute
Les liens de KOogar ont l'air intéressants, sinon on peut juste envoyer un petit mail qui dit "ceci est juste un mail pour vérifier" et on voit si on n'a pas un "mail dilivery permanently failed to the following recipients" dans les 3 secondes.

P.S. KOogar j'adooooore ta photo ^^
 
WRInaute accro
nicolas34500 a dit:
Sinon, il y a toujours le petit truc de vérification : tapez les caractères ci-dessous...

Celui-là est plustôt original...
-http://bbs.dhs.nu/alive/index.php?request=250
(si la page n'est plus valide, allez sur -http://alive.atari.org/ , cliquez sur forum en haut à droite, puis sur d'importe quel message. C'est en bas.)

Le rapport avec le sujet de ce topic ???
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut