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

Langage Java Discussion :

Vérifier la validité d'une adresse email


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut Vérifier la validité d'une adresse email
    Bonjour à tous,

    Alors que j'écris une appli Web en Java EE, je me retrouve confronté à un problème basique: je veux vérifier que l'utilisateur entre une adresse email valide.

    J'ai effectué quelques recherches et j'ai trouvé plusieurs techniques maison (le plus souvent à base de regex) mais je suis supris de ne pas avoir trouvé de Toolkit qui propose une méthode poussée pour ce genre de problématique (que tout le monde rencontre).

    D'où ma question: existe-t-il une méthode poussée de validation d'adresse email dans l'api Java ou l'API Spring (vu que je l'utilise) permettant de valider une adresse email ou faut-il forcément la coder soi-même?

    En vous remerciant

    SH

  2. #2
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    il doit être possible de vérifier une adresse mail (au sens format mais non existance du destinataire) avec InternetAddress

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Je ne sais pas pour Spring, mais avec l'API standard un simple appel à la méthode matches() de la classe String avec l'expression régulière qui va bien et le tour est joué .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut
    Bonjour et merci de vos réponses.

    je ne connaissais pas InternetAddress, je te remercie pour cette info, seulement ça ne me convient pas car pas assez strict. En fait il suffit d'avoir un "@" dans la chaine pour que ça soit considéré valide.

    J'ai donc simplement utilisé une regex chopée sur le net:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    email.matches(".+@.+\\.[a-z]+");
    ça me vérifiera au moins si c'est bien de la forme qqch@qqch.qqch, c'est déjà ça.

    Bon ben je suis parti pour la même histoire concernant l'existance d'une date

  5. #5
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    pour etre completment sur de l'adresse, il faut envoyer un mail et voir la reponse du demon smtp. Pour ca JavaxMail est une solution. En cas de NotDeliveryQQChose l'adresse n'est pas bonne, bon ca peut etre aussi un probleme reseau..., mais la.

    Pour les dates c'est pas tout a fait pareil, car plusieurs formats representent la meme dates et sont valides, il faut definir plus précisement ce que tu veux, et ne veut pas

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut
    Je te remercie de ta réponse.

    Pour les dates, j'ai trouvé une solution toute simple qui me convient:

    Je parse avec SimpleDateFormat et je définis setLenient(false);

    Pour l'email, de toute façon j'ai prévu d'envoyer un email et le compte n'est activé qu'une fois que l'utilisateur y a répondu (comme pour les forums par exemple), c'est juste une vérification préliminaire

  7. #7
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    dans ce cas les verifications que tu peux faire sont vraiment light :
    prescence d'un '@'
    d'un '.' apres le @
    et ca doit s'arreter la

  8. #8
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Citation Envoyé par Tourix
    Bonjour et merci de vos réponses.

    je ne connaissais pas InternetAddress, je te remercie pour cette info, seulement ça ne me convient pas car pas assez strict. En fait il suffit d'avoir un "@" dans la chaine pour que ça soit considéré valide.

    J'ai donc simplement utilisé une regex chopée sur le net:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    email.matches(".+@.+\\.[a-z]+");
    ça me vérifiera au moins si c'est bien de la forme qqch@qqch.qqch, c'est déjà ça.

    Bon ben je suis parti pour la même histoire concernant l'existance d'une date
    je suis pas sur

    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
    InternetAddress
     
    public InternetAddress(String address,
                           boolean strict)
                    throws AddressException
     
        Parse the given string and create an InternetAddress. If strict is false, the detailed syntax of the address isn't checked.
     
    Parameters:
        address - the address in RFC822 format
        strict - enforce RFC822 syntax 
    Throws:
        AddressException - if the parse failed
    Since:
        JavaMail 1.3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/02/2011, 14h41
  2. vérifier la validité d'une adresse mail
    Par mikew75 dans le forum Réseau
    Réponses: 0
    Dernier message: 26/02/2010, 14h48
  3. Réponses: 2
    Dernier message: 17/10/2007, 15h10
  4. Réponses: 5
    Dernier message: 05/07/2006, 18h54
  5. (msn) validité d'une adresse email
    Par t26 dans le forum Messagerie instantanée
    Réponses: 2
    Dernier message: 10/09/2005, 13h05

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