begin process at 2012 05 27 18:20:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

E-Mail / Messagerie

 > REGEXP POUR VÉRIFIER LA VALIDITÉ D'UNE ADRESSE MAIL SUIVANT NORME RFC822

REGEXP POUR VÉRIFIER LA VALIDITÉ D'UNE ADRESSE MAIL SUIVANT NORME RFC822


 Information sur la source

Note :
5,75 / 10 - par 4 personnes
5,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :E-Mail / Messagerie Classé sous :regexp, email, validité Niveau :Expert Date de création :21/05/2006 Date de mise à jour :21/05/2006 15:31:33 Vu / téléchargé :25 287 / 444

Auteur : janhsh

Ecrire un message privé
Commentaire sur cette source (25)
Ajouter un commentaire et/ou une note

 Description

Vous trouverez un peu partout sur Internet différentes vérificateurs de la validité des adresses mails, mais aucun ne fonctionne vraiment comme stipulé dans la norme RFC822.

Mais il est illusoire de parler de e-mail sans vous parler de la norme RFC822 car c'est précisément cette norme qui régis les règles de syntaxe des adresses de messagerie.  (voir sur ce site  dans la liste des RCF)

A la lecture de cette norme, vous pourrez constater par vous-même qu'elle était complètement aberrante.  

Par exemple, l'adresse complètement farfelue:  #+^-`&%_=|/|_?=!§{}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ @mail.com  est, suivant la norme, une adresse parfaitement valide.

En pratique vous avez très peu de chance d'en trouver, car très peux de serveurs de messagerie respect la norme et n'autorisent pas tous les caractères lors de la création du compte de messagerie ou d'un alias.

Mais si vous développez un formulaire avec vérification de la validité des adresses, il importe que ce test de validité puisse fonctionner dans tous les cas, même avec les adresses les plus saugrenues.

Pour rappel:
En résumé, une adresse e-mail se compose de deux parties, un segment utilisateur et un segment serveur, séparé par le caractère "@".
La partie serveur se termine toujours par un tld (Top Level Domaine) dont les noms sont imposés (com, net, org, be, fr, uk, ……) qui est précédé du domaine.

C'est le cas de beaucoup des adresses de messagerie, mais de nombreuse adresses procèdent également un sous domaine, un en sous-sous-domaines, …..
La partie user à une structure similaire, il peut également être divisé en segments

Pour chaque partie, la séparation en segments se fait par le caractère point.

Exemple courant : les adresses du style Nom.prenom.section@université.academic.tld ou du style prenom.nom.bureau.etage.batiment@serveur.sous-serv ice.service.domaine.tld

Le nombre de segment étant seulement limité par la taille totale de l'adresse (256 caractères).
Chaque segment peut contenir des lettres non accentuées, des chiffres et les caractères Chaqueciaux #+^-$`&%_=|/|_?=!§{}

Suivant la norme, l'adresse suivante est valide (même si complètement farfelue ) :
#+^-$`&%_=|/|_?=!§{}@#+^-$`&%_=|/|_?=!§{}.com  

Il en découle se ce qui précède que vous ne pouvez pas avoir deux points qui se suivent dans une adresse car cela constituera un segment nulle, ce qui n'est pas autorisé.

Maintenant, passons au code :
Je n'en suis pas l'auteur, je le dépose simplement ici pour le retrouver, le jour où j'en n'aurai besoin … et aussi qu'il puise servir à quelqu'un d'autre

Source

  • if (preg_match('/^(?:(?:\\r\\n)?[ \\t])*(?:(?:(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*\\<(?:(?:\\r\\n)?[ \\t])*(?:@(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*)*:(?:(?:\\r\\n)?[ \\t])*)?(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*)|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*:(?:(?:\\r\\n)?[ \\t])*(?:(?:(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*\\<(?:(?:\\r\\n)?[ \\t])*(?:@(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*)*:(?:(?:\\r\\n)?[ \\t])*)?(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*)(?:,\\s*(?:(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*\\<(?:(?:\\r\\n)?[ \\t])*(?:@(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*)*:(?:(?:\\r\\n)?[ \\t])*)?(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*))*)?;\\s*)$/', $email)) {
  • echo('Email OK');
  • } else {
  • echo('Email Invalide !!');
  • }
if (preg_match('/^(?:(?:\\r\\n)?[ \\t])*(?:(?:(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*\\<(?:(?:\\r\\n)?[ \\t])*(?:@(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*)*:(?:(?:\\r\\n)?[ \\t])*)?(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*)|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*:(?:(?:\\r\\n)?[ \\t])*(?:(?:(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*\\<(?:(?:\\r\\n)?[ \\t])*(?:@(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*)*:(?:(?:\\r\\n)?[ \\t])*)?(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*)(?:,\\s*(?:(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*|(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)*\\<(?:(?:\\r\\n)?[ \\t])*(?:@(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*)*:(?:(?:\\r\\n)?[ \\t])*)?(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|"(?:[^\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[ \\t]))*"(?:(?:\\r\\n)?[ \\t])*))*@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\".\\[\\] \\000-\\031]+(?:(?:(?:\\r\\n)?[ \\t])+|\\Z|(?=[\\["()<>@,;:\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[ \\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*))*)?;\\s*)$/', $email)) {
echo('Email OK');	
} else {
echo('Email Invalide !!');	
}

 Conclusion

Note important:  Si vous recopiez le code, faite attention aux retours à la ligne qui pourraient s'intercaler dans l'expression.
Cette dernière étant sur une seule ligne.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 mai 2006 15:31:33 :
Ajout fichier rcf822.php - exemple fonctionnel de test de la conformité un e-mail

 Sources du même auteur

Source avec Zip Source avec une capture CLASSE DE MESSAGERIE
Source avec Zip CLASSE POUR EMPÊCHER LES SOUMISSIONS MULTIPLES DE FORMULAIRE
Source avec Zip SITE MULTILINGUE AVEC DÉTECTION DE LA LANGUE DE L'EXPLORATEU...
WWW-AUTHENTICATE AVEC PHP EN MODE CGI

 Sources de la même categorie

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip CHAT EN PHP ET JQUERY par pitchoubrazil
Source avec Zip Source avec une capture FORMULAIRE DE CHOIX MULTI-CONTACT VALIDE XHTML 1.0 TRANSITIO... par aventurier19
Source avec Zip Source avec une capture WEB MESSENGER par EvildarkEurope

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture CLASSE DE MESSAGERIE par janhsh
Source avec Zip CLASS D' ENVOIE DE MAIL EN SMTP par ImmortalPC
TESTER LA VALIDITÉ D'UNE ADRESSE EMAIL SANS ATTENDRE DE RÉPO... par frdtech
Source avec Zip FORMULAIRE PERMETTANT D'ENVOYER UN E-MAIL (AVEC PIÈCES JOINT... par triumphs

Commentaires et avis

Commentaire de momoxe le 21/05/2006 15:18:55

Euh...
Comment dire?
Ca doit être assez lourd pour le serveur tout de même non?
@+

Commentaire de Anthomicro le 21/05/2006 15:32:45

Question simple : à quoi ça sert concrètement ? Parce que la protection absolue n'existe pas. Autant faire une vérification simple qui ne bouffera pas tout le temps processeur au moindre appel de la page. N'importe qui pourra de toute façon entrer n'importe quel mail bidon (ou qui deviendra bidon).

aaaaaa@bbbbb.fr et hop fini... si t'envoies une confirmation par mail bah pas de problème tu crées un mail sur jetable.org et hop au bout de X heures l'alias saute ce qui fait que le mail devient bidon... bref de toute façon on pourra toujours trouver une parade à ce genre de trucs.

Commentaire de janhsh le 21/05/2006 15:42:04

Je sais, d'un point de vue écriture, c'est épouvantable…

Apparemment,l'exécution est très rapide (voir fichier exemple) mais je n'ai pas vraiment eu l'occasion de l'utiliser ni de faire des tests approfondis.

@+

Commentaire de themioux le 21/05/2006 17:23:18

Eh ben, ca c'est de l'expression régulière... Moi qui suis fâchée avec elles...

En tout cas, cette source est toujours utile pour qui veut vérifier une adresse email aux normes

(tiens je vais m'ouvrir #+^-$`&%_=|/|_?=!§{}@mail.com :D)

Commentaire de steve6000 le 22/05/2006 01:12:24

fiouf =]

function mailcheck($mail) {
      $atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]';
      $domain = '([a-z]([-a-z0-9]*[a-z0-9]+)?)';
      $regex = '^'.$atom.'+'.'(\.'.$atom.'+)*'.'@'.'('.$domain .'{1,63}\.)+'.$domain.'{2,63}$';    
      if (eregi($regex, $mail)) { return true; }
      else { return false; }
}

Commentaire de PaDa le 22/05/2006 08:53:41

La regex est épouvantable je trouve aussi..
J'vois les mêmes assertions répétées au moins 15 fois dedans.. les échappements me paraissent hyper lourds, je ne sais pas quelle version de preg_* correspond à quelle version de la bibliothèque PCRE, mais sur certains passages, autant utilise \Q ... \E (et de toute facon y'a des backslashes inutiles à priori)
Les imbrications de parenthèses sont assez moches, j'suis persuadé que ca peut se faire plus simplement, faudrait que je regarde cette RFC pour essayer de pondre un truc plus petit et qu'on compare :D
T'as du bien te prendre la tête pour écrire ca :D

Commentaire de PaDa le 22/05/2006 09:03:32

Oups, je n'avais pas lu ton comment jusqu'au bout :p si ce code n'est pas de toi pas grave, j'vais quand même essayer de l'améliorer pour voir..

Commentaire de TheSin le 22/05/2006 09:25:04

moi ce que j'aime bien dans l'expression c'est tout les \\t  \\r et \\n alors qu'un simple flag aurait suffit, et paf ça fait déjà des caractères en moins ;-)

Commentaire de malalam le 22/05/2006 11:00:57 administrateur CS

Je me range à l'avis d'Antho : l'intention est louable, de vouloir se rapprocher de la RFC, mais en pratique...ce n'est pas une bonne idée, pour les raisons qu'il cite.

Bon après, je ne vais pas me pencher sur ton expression, mais j'ai dans l'idée que tu t'y es mal pris. Il me parait curieux que tu aies besoin de tout ça pour écrire ton motif, il y a bcp de redondances, à l'oeil nu (au microscope chais pas...).

Commentaire de frankie_73 le 22/05/2006 16:14:02

J'ai essayé de m'ouvrir un compte hotmail #+^-$`&%_=|/|_?=!§{}@hotmail.com pour voir, mais ca n'a pas marché ça dit:
"Les adresses de messagerie doivent commencer par une lettre. Elles ne peuvent contenir que des lettres, des chiffres, des points (.), des tirets (-) et des traits de soulignement (_). Tapez une autre adresse de messagerie."
je suis vraiment désolé, j'aurais vraiment aimé avoir #+^-$`&%_=|/|_?=!§{}@hotmail.com  comme adresse personelle...

Commentaire de coockiesch le 28/05/2006 22:09:15

C'est pas le genre de code qui, quand on le met dans un notepad aux bonnes dimensions, représente une tête de Mickey? :-D

Trop bourrin pour moi, j'en reste à ma regexp de base! :)

@++

R@f

Commentaire de jean84 le 30/05/2006 18:15:27

lol... je crois que le tour de la question a ete fait, je suis d'accord avec tout le monde ici present, l'intention est certe louable mais beaucoup trop lourde a deployer ... et puis, d'un point de vue plus personnel, les regex c'est super utile quand on veut faire une verification draconienne (pas sur de l'orthographe la ... :p ) en ecrivant relativement peut, c'est ce qui m'a pousse a apprendre les regex. Et puis les rfc c'est sympa, mais sa reste quand meme dans la pratique des projets en developpement constant, donc mieux vaut se fier a ses besoins reels.

Exemple : moi sur mon site je n'accepte pas les adresse genres #+^-$`&%_=|/|_?=!§{}@mail.com tout simplement parce qu'elles ne sont pas accepte sur les autres sites -cf Frankie-. C'est contraignant mais pour esperer (on est jamais sur) avoir une bonne adresse, faut suivre le mouvement (malheureusement .. )

@++ et bon coding !!

Commentaire de jean84 le 30/05/2006 18:17:11

PS : et puis c'est vrai qu'a developper, sa doit pas etre de tout repos ce genre de code ... lol ... et je ne pense meme pas a la maintenance ... :p :p

Commentaire de pastis51forever le 03/07/2006 10:43:16

J'dis ptetre une connerie, mais je viens de voir dans le descriptif de la rfc822 ceici:
MSG - Le Format des Messages de l'Internet
"La spécification du format des messages, utilisé par exemple pour interpréter le contenu d'un e-mail. Cette RFC est obsolète, remplacée par la RFC 2822 dont une traduction en Français est disponible."
J'espère qu'ils n'ont rien mofidié en ce qui concerne les adresses e-mail... En tout cas, bon courrage pour la faire évoluer ton expression...

Commentaire de TheSin le 03/07/2006 11:42:23

La traduction étant trouvable ici :
http://abcdrfc.free.fr/rfc-vf/rtf/rfc2822.rtf

Commentaire de pepecyril le 29/07/2006 17:23:04

Euhh, ça me laisse perplexe. Il a été testé ce code ? Car moi j'ai pas confiance en une expression pareille

Commentaire de jean84 le 01/08/2006 11:21:15

C'est vrai que vu la taille du truc, on peut se poser la question a savoir si il y a pas une backdoor dedans ... ^^ non je deconne faut pas psycoter, sa reste du php dans une expression reguliere.. au pire sa envoi un mail quelque part mais c'est tout.... pour verifier t'as qu'a la mettre dans un editeur genre dreamweaver (que je recommande ^^) ou context (tres bien egalement) et tu regarde la couleur que prend le texte. Si tout n'est pas en rouge (ou de la couleur d'un string normal), c'est qu'il y a probleme... mais j'en doute ... :p

En fait je suis plus de l'avis de coockiesch, je suis persuade que sa cache un dessin en ASCII ... ^^

@++

Commentaire de PaDa le 01/08/2006 12:08:22

Faut arrêter de craquer lol..
Je sais pas si ce truc est vraiment rfc compliant, si ca marche bien, mais essayez tout de même de pas avoir le nez collé à l'écran hein..
1 preg_match, 1 chaine entre simple quotes, 2 echo()... Y'a pas de quoi se cacher sous la table si ?

Commentaire de malalam le 01/08/2006 13:29:26 administrateur CS

Lol en effet, y en a qui psychotent grave là ;-)
Aucun risque avec ce code. Si ce n'est de tuer le serveur PHP à la tâche pour executer ce truc ;-)

Commentaire de PaDa le 01/08/2006 14:20:14

Faudrait envoyer cette regex à Philippe Hazel (ndlr: le fou furieux qui développe pcre), je suis persuadé qu'il s'en chopperait une crise cardiaque bien avant que le serv ait fini de tourner en effet :p

Commentaire de jean84 le 01/08/2006 14:52:44

Imaginez un peu si on s'amusait a faire un benchmark sur cette fonction ?? on fait 1000 tour de boucle avec l'adresse #+^-$`&%_=|/|_?=!§{}@#+^-$`&%_=|/|_?=!§{}.com  et on regarde le temps que renvoi microtime().... lol... sa serait un truc du genre "Fatal error: Maximum execution time of 30 seconds exceeded ..." ^^ sa peut etre bien fun !!

Et sous IIS .. je n'ose y penser .. peut etre une nouvelle faille ?? lol.. allez j'arrete

@++

Commentaire de jean84 le 01/08/2006 14:56:21

ah au fait je pose la question au cas ou : je me suis remy au C++ depuis peu (disons que j'avais pas eu de projets depuis quelques temps) et lors d'un traitement d'une fonction particuliere, j'ai commence a ercire justement une expression reguliere jusqu'au moment ou j'ai appelle preg_match() et que mon compilo a pas ete super d'accord ... ^^
Vous savez si il existe des lib(sdk) utilisant les regex de type pcre pour le C++ ?? j'ai essaye de faire mon moteur mais j'ai mechament galerer... j'en suis encore loin, voir meme tres loin ...

si quelqu'un avait des infos la dessus, je prend !! Merci et @++

Commentaire de PaDa le 01/08/2006 15:02:35

Bah euh PCRE (je dis une bêtise ?)
http://www.pcre.org/

Commentaire de jean84 le 02/08/2006 09:57:03

heu... lol.. j'ai un peu honte la ^^ merci pour le lien :p

Commentaire de janhsh le 15/05/2009 20:50:18

Pour ceux que ça intéresse, voici un site sur lequel on présente une regexp similaire ....
http://www.expreg.com/expreg_article.php?art=verifmail
voir en fin de page...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

test validité plusieurs adresse mails [ par younes371 ] Bonjour, Je veux envoyer des emails à plusieurs utilisateurs avec verification d'adresses mails ... J'ai ce script qui verifie la validite d'une adr Erreure inconnue ... ?!? [ par lolyest ] Bonjour, holla, hi !Je suis en train de dévelloper un script, le coici:&lt;?php            $site_url = "**************";        $host = "localhost";   envoie de donnees d un formulaire par mail [ par artemiscel ] Bonjour,je debute en php, j'ai essaye de faire une page permettant aux visiteurs d'envoyer un mail avec toutes les informations qu il doit faire parve transfert d'sms par email [ par bbb1 ] pouvez vous m'aider à faire un site web pour le tranfert des sms par le web? tynmce+envoie mail [ par sws2007 ] bonjour les developpeurs;j'ai utiliser tiny_mce comme editeur pour rediger mon email sur mon mon site tout se passe bien sauf que je reçois des email recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe [ par tex73 ] bonjour à tous!je suis confronté à un pb depuis ce matin. en fait je travail en ce moment sur un peit projet de newsletter à envoi automatique.pour ce email tracking [ par malik7934 ] Hello, Je suis à la recherche d'une solution d'e-mail tracking, open-source ou pas, gratuite caracteres speciaux pour mail [ par tonydanza ] Bonjour a tous!J essaye de resoudre un petit probleme (banal)pour l envoie d un mail j ai besoin de connaitre comment on faitpour convertir les caract vérification d'email [ par Annadrill ] bonjour,je cherche a faire un systeme qui lorsqu on entre son adresse email comme par exemple pour s'enregistrer à la news d'un site,un email de confi Besoin d'aide pour de la regexp [ par Eliays ] Bonjour j'aimerai de l'aide pour ma regex : $data=' data "c:\progr cinq\fire.exe" -open -1 /ut "ok" /no "-1" ' J'aimerai seulement garder : c:\pro


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales