[PHP] Pinguer une adresse mail


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

[PHP] Pinguer une adresse mail

Message le Mer Mar 29, 2006 15:35

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));

ch_lensois
WRInaute discret
WRInaute discret
 
Messages: 169
Inscription: 27 Oct 2004

Message le Mer Mar 29, 2006 15:46

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.


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Mer Mar 29, 2006 15:49

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...
;)


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Mer Mar 29, 2006 15:57

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


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Mer Mar 29, 2006 16:12

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.


spout
WRInaute accro
WRInaute accro
 
Messages: 4109
Inscription: 14 Mai 2003

Message le Mer Mar 29, 2006 16:13

j'utilise cette fonction:
Code: Tout sélectionner
<?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: Tout sélectionner
<?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 ;)


absoluteweb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 478
Inscription: 22 Nov 2002

Message le Mer Mar 29, 2006 20:08

Code: Tout sélectionner
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.

spijoelx
WRInaute discret
WRInaute discret
 
Messages: 249
Inscription: 6 Fév 2004

Message le Mer Mar 29, 2006 20:15

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.

iD.NicKy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 23
Inscription: 28 Aoû 2005

Message le Mer Avr 12, 2006 14:40

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


ultrajoe
WRInaute discret
WRInaute discret
 
Messages: 217
Inscription: 4 Avr 2003

Message le Mer Avr 12, 2006 15:14

iD.NicKy a écrit: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 !


f_trt
WRInaute impliqué
WRInaute impliqué
 
Messages: 903
Inscription: 17 Sep 2005

Message le Mer Avr 12, 2006 17:28

spijoelx a écrit: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+

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Mer Avr 12, 2006 17:29

spijoelx a écrit: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.


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2199
Inscription: 10 Avr 2005

Message le Sam Aoû 26, 2006 1:20

Up ça m'intéresse !

Je cherche la même fonction :)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3884
Inscription: 16 Nov 2004

Message le Sam Aoû 26, 2006 8:29


nicolas34500
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 2 Juin 2006

Message le Dim Aoû 27, 2006 20:18

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 ^^

[PHP] Pinguer une adresse mail

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Gmail Notifier

  • La classe C de l'adresse IP
    Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur).
  • Transformer des textes non cliquables en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités