IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Web Discussion :

Vos applications valident-elles correctement les adresses e-mail ?


Sujet :

Conception Web

  1. #1
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 548
    Points
    68 548
    Par défaut Vos applications valident-elles correctement les adresses e-mail ?
    Vos applications valident-elles correctement les adresses e-mail ?
    Retour sur les détails des spécifications



    Les adresses e-mail sont au cœur de toutes les applications Web. Et s'il y a bien une seule tâche commune à tous les projets de développement Web, c'est la validation de ces adresses.

    Si cette validation peut sembler au premier abord simple, facilement accomplie par le test de conformité à une expression rationnelle, beaucoup de développeurs ignorent les détails des spécifications et risquent de rejeter des utilisateurs aux adresses e-mail peu habituelles certes, mais tout à fait conformes.

    Le problème vient essentiellement du fait que les spécifications autorisent bien plus de caractères que ne le pensent beaucoup de développeurs. Les caractères ! $ & * – = ^ ` | ~ # % ‘ + / ? _ { } étant tous aussi valides les uns que les autres.

    Les spécifications autorisent même la présence du caractère « @ » (arobase) dans la première partie de l'adresse pour peu qu'il soit échappé (précédé par un Antislash)

    Cette problématique est d'autant plus compliquée que certains utilisateurs disposent d'adresses e-mail cette fois non conformes aux spécifications, mais tout à fait fonctionnelles.

    Chris Sinjakli (un développeur anglais) préconise une solution plutôt radicale : ne valider l'adresse e-mail que par le lien (ou code) de validation envoyé au compte de messagerie en question.

    Et vous ?

    Comment validez-vous les adresses mail ?
    Vos scripts de validation respectent-il les spécifications ?


    Source : Blog de Chris Sinjakli

  2. #2
    sunse8
    Invité(e)
    Par défaut
    Notons aussi que pour une application PHP, il suffit d'un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filter_var($adresse_email, FILTER_VALIDATE_EMAIL)

  3. #3
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    J'ai pris le temps une fois de lire une RFC sur ce sujet, mais c'est assez long/compliqué... Sur internet, chacun propose son expression régulière miracle pour valider ses emails... mais à chaque fois il y a un problème

    Du coup je m'en sors avec celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '^[a-zA-Z0-9\._-]{1,60}@[a-zA-Z0-9\._-]{1,36}[\.][a-zA-Z0-9]{2,4}$'
    Mais je suis conscient qu'il y a 0.01% des gens qui se feront jeter

    Bill si tu passes par là, donne la nous enfin cette satanée expression !!!

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 76
    Points : 89
    Points
    89
    Par défaut
    La regexp de validation des emails est simple pourtant...


    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
    (?:(?:rn)?[ t])*(?:(?:(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
    )+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
    rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(
    ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[
    \t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\0
    31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\
    ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+
    (?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:
    (?:rn)?[ t])*))*|(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
    |(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)
    ?[ t])*)*<(?:(?:rn)?[ t])*(?:@(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\
    r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
    \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)
    ?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t]
    )*))*(?:,@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[
    \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
    )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t]
    )+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*)
    *:(?:(?:rn)?[ t])*)?(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
    |\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:r
    n)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:
    \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t
    ]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031
    ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
    ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?
    :(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?
    :rn)?[ t])*))*>(?:(?:rn)?[ t])*)|(?:[^()<>@,;:".\[\] \000-\031]+(?:(?
    :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?
    [ \t]))*"(?:(?:rn)?[ t])*)*:(?:(?:rn)?[ t])*(?:(?:(?:[^()<>@,;:".\[\]
    \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|
    \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>
    @,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"
    (?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t]
    )*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:
    ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
    :[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[
    ]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*|(?:[^()<>@,;:".\[\] \000-
    \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(
    ?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)*<(?:(?:rn)?[ t])*(?:@(?:[^()<>@,;
    :".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([
    ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
    .[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[
    ]r]|.)*](?:(?:rn)?[ t])*))*(?:,@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\
    [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\
    r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[]
    000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]
    |.)*](?:(?:rn)?[ t])*))*)*:(?:(?:rn)?[ t])*)?(?:[^()<>@,;:".\[\] \0
    00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\
    .|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>@,
    ;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?
    :[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*
    (?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".
    \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
    ^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]
    ]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*>(?:(?:rn)?[ t])*)(?:,s*(
    ?:(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:
    ".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(
    ?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
    \["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t
    ])*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
    ])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
    :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|
    Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*|(?:
    [^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\
    ]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)*<(?:(?:rn)
    ?[ t])*(?:@(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
    ()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
    ?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>
    @,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*(?:,@(?:(?:rn)?[
    t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
    ;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
    )*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\
    ".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*)*:(?:(?:rn)?[ t])*)?
    (?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".
    \[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:
    rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
    "()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])
    *))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
    +|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
    .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z
    |(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*>(?:(
    ?:rn)?[ t])*))*)?;s*)
    Oui, c'est véridique !
    Des gens comme vous vous parlent de leurs journées. Leurs problèmes, leurs solutions sont ils les mêmes que les vôtre ?

  5. #5
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    Heziva tu peux citer ta source STP ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut
    Topic intérressant, mais si on devait checker des milliers d'adresses email lors d'une inscription par "un test d'envoi", on va pas s'en sortir !

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Chris Sinjakli (un développeur anglais) préconise une solution plutôt radicale : ne valider l'adresse e-mail que par le lien (ou code) de validation envoyé au compte de messagerie en question.
    Je suis assez d'accord. Si l'email est une donnée critique la meilleur façon de la valider est effectivement d'utiliser un mail de confirmation avec tous les problème que ca engendre (mail qui n'arrive jamais , spam ...)
    Cependant ca n'empèche pas de faire une validation grossière au moment de la saisie du genre vérifié que j'ai au moins un arobase , un identifiant et un domaine (pas forcément d'extension à ce domaine).
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Acropole
    Invité(e)
    Par défaut
    Citation Envoyé par sunse8 Voir le message
    Notons aussi que pour une application PHP, il suffit d'un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filter_var($adresse_email, FILTER_VALIDATE_EMAIL)
    Les commentaires dans la doc php mentionnent des erreurs de validations. Notamment la validation d'une adresse mail sans extension (genre : utilisateur@developpez au lieu de utilisateur@developpez.net).

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par katcha95 Voir le message
    Topic intérressant, mais si on devait checker des milliers d'adresses email lors d'une inscription par "un test d'envoi", on va pas s'en sortir !
    Ah bon ? Et pourquoi pas ?

  10. #10
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    Salut,

    Heziva tu peux citer ta source STP ?
    http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Bonjour à tous,

    Par ma part j'utilise la regex suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])
    Ma source :
    http://www.regular-expressions.info/email.html

    Cette regex est, d'après le site,
    The Official Standard: RFC 2822

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Vos applications valident-elles correctement les adresses e-mail ? Retour sur les détails des spécifications
    on peut externaliser le traitement de vérification de la véracité des adresses mail en utilisant des web services (SOAP/WSDL,HTTP). il existe des services gratuits qui le font.
    le WSDL d'un bon web service que j'utilise :
    http://ws.xwebservices.com/XWebEmail...alidation.wsdl

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 21
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par grunk Voir le message
    Je suis assez d'accord. Si l'email est une donnée critique la meilleur façon de la valider est effectivement d'utiliser un mail de confirmation avec tous les problème que ca engendre (mail qui n'arrive jamais , spam ...)
    Cependant ca n'empèche pas de faire une validation grossière au moment de la saisie du genre vérifié que j'ai au moins un arobase , un identifiant et un domaine (pas forcément d'extension à ce domaine).
    Oui je suis assez d'accord aussi, mais après nous sommes confronté aux emails jettables

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Points : 263
    Points
    263
    Par défaut
    C'est clair, les emails jetable c'est pas terrible pour certains.
    Moi pour le moment, ca n'accepte pas les emails un peu exotique

  15. #15
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     try
                {
                    MailAddress ma = new MailAddress(address);
                    return true;
                }
                catch(FormatException ex)
                {
                    return false;
                }
    en .net/c#

    System.Net.Mail.MailAddress leve une exception si c'est pas bon (par ça valide les addresses multiples).

    pas de problème !

  16. #16
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par Eric013 Voir le message
    Oui je suis assez d'accord aussi, mais après nous sommes confronté aux emails jettables
    Sur certains site j'ai pris le partit de bloquer ces adresses. C'est pas exhaustif mais je test une 30 aine de service ce qui permet d'éviter le gros des adresses jetable
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par Denouche Voir le message
    Bonjour à tous,

    Par ma part j'utilise la regex suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])
    Ma source :
    http://www.regular-expressions.info/email.html

    Cette regex est, d'après le site,
    Ouais, mais ca n'accepte pas les email ecrit en majuscule ? a moins que tu fasse un tolower d'abord ?

  18. #18
    Membre régulier Avatar de Topeur
    Profil pro
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Points : 78
    Points
    78
    Par défaut Caractères étranges
    Je ne sais combien de fois je me suis vu refusé mon adresse email spécial newsletter de gmail par les formulaires de contact.
    Ces adresses email sont des alias.
    toto+newsletter@gmail.com
    toto+perso@gmail.com
    Le + n'est pas considéré comme un caractère valide à tort !

  19. #19
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 541
    Points : 1 898
    Points
    1 898
    Par défaut
    Citation Envoyé par Eric013 Voir le message
    Oui je suis assez d'accord aussi, mais après nous sommes confronté aux emails jettables
    Peut-être que si y'avait pas autant de sites qui demandaient l'adresse mail pour rien ( si ce n'est les revendre/envoyer du spam ) les gens n'utiliseraient pas ce genre de procédés....
    If it's free, you are not the customer, you are the product.

  20. #20
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Quelque soit la manière dont nous testons l'intégrité de la chaine alpha-numérique correspondant à l'adresse e-mail (expressions rationnelles, fonctions de filtrages perso ou natives), il est utile de vérifier aussi l'existence du domaine.

    En effet, même si une adresse semble valide, cela ne veux pas dire que le domaine associé existe ou supporte la réception d'emails.

    Avec PHP, il existe la fonction...
    bool checkdnsrr ( string $host [, string $type = "MX" ] )
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $f=(filter_var($email,FILTER_VALIDATE_EMAIL)!==false);
    if($f){
    	$host=strtolower(substr(strrchr($email,'@'),1));
    	$f=checkdnsrr($host,'MX');
    }
    if($f)
    	echo 'Adresse valide';
    else
    	echo 'Adresse invalide';
    ?>

Discussions similaires

  1. Vos applications sont-elles compatibles avec Windows 7 ? Tous les conseils
    Par Community Management dans le forum Windows 7
    Réponses: 10
    Dernier message: 27/10/2016, 17h29
  2. LinkedIn accusé de pirater les adresses e-mail de ses utilisateurs
    Par Cedric Chevalier dans le forum Actualités
    Réponses: 20
    Dernier message: 30/09/2013, 14h08
  3. Réponses: 0
    Dernier message: 04/03/2011, 12h36
  4. Vos applications sont-elles compatibles avec Windows 7 ? Tous les conseils
    Par Pierre Louis Chevalier dans le forum Actualités
    Réponses: 0
    Dernier message: 24/07/2009, 02h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo