Valider une adresse email

Valider une adresse email - Java - Programmation

Marsh Posté le 15-09-2004 à 14:26:54    

Bonjour,
 
Je cherche à valider une adresse email saisie.
 
Tout d'abord, j'utilise InternetAddress.parse( strEMailAddress ) qui vérifie la validité de l'adresse selon la RFC822.
 
Ensuite, je récupère le nom de domaine et dans l'absolu je cherche à savoir si il existe un serveur de mail pour ce domaine.
Ca je ne sais pas faire du tout :/
 
Pour le moment, je me contente de vérifier avec InetAddress.getAllByName( strHost ) que le nom existe. Mais cette méthode ne fait que vérifier l'existance d'une adresse IP affecté par défaut au nom de domaine. Si je ne trouve pas, j'essaye avec  
InetAddress.getAllByName( "www." + strHost ). C'est quand même du bricolage de haut vol :/ mais j'ai pas mieux.
 
Z'avez pas, dans vot' chapeau, une classe qui permet de récupérer les infos DNS d'un domaine ?
 
Genre l'équivalent d'un : "host -t MX domainName" ou "dig domainName MX"
 
PS : faut que ça marche en Java 1.3 !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-09-2004 à 14:26:54   

Reply

Marsh Posté le 15-09-2004 à 14:29:27    

tu envoies un mail avec le mot-de-passe dedans ?
 
J'espère que tu enregistres ton fichier à la cnil.

Reply

Marsh Posté le 15-09-2004 à 14:30:11    

Pkoi t'essaies pas bêtement d'ouvrir une socket sur le port smtp de l'adresse, pour voir?


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
Reply

Marsh Posté le 15-09-2004 à 14:31:29    

gfive a écrit :

Pkoi t'essaies pas bêtement d'ouvrir une socket sur le port smtp de l'adresse, pour voir?


parce que le MX peut etre une autre machine

Reply

Marsh Posté le 15-09-2004 à 14:31:46    

tu cherches dnsjava peut-etre ?
Edit: http://www.dnsjava.org/


Message édité par lorill le 15-09-2004 à 14:32:24
Reply

Marsh Posté le 15-09-2004 à 14:32:08    

lorill a écrit :

parce que le MX peut etre une autre machine


 
Ah ouais, spas con! :D


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
Reply

Marsh Posté le 15-09-2004 à 14:37:01    

d4rK 3Mpr0R a écrit :

tu envoies un mail avec le mot-de-passe dedans ?


Non, l'utilisateur saisi une adresse email. Elle n'est utilisée que pour lui confirmer que son message (saisi par ailleur) est bien arrivé.
[citation]J'espère que tu enregistres ton fichier à la cnil.[/citation]
Oui.
 
Je voudrais bien mettre en place un système d'inscription avec génération de MDP pour éviter les abus, mais ça sort du cahier des charges :/
 
De toute façon, c'est ça le problème. Ce que je cherche, c'est vérifier que le domaine a bien un serveur mail.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-09-2004 à 14:38:02    

gfive a écrit :

Ah ouais, spas con! :D


Et avec certain domaines, y'a pas d'adresse IP par défaut...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-09-2004 à 14:55:26    

lorill a écrit :

tu cherches dnsjava peut-etre ?
Edit: http://www.dnsjava.org/


Merci.
En cours de test...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-09-2004 à 16:23:00    

Bon, ça marche a condition de lui fournir un Resolver (Serveur DNS).
 
En fait faut croire que ça n'existe pas en standard dans Java. Quand on regarde le code de dnsjava, on vois qu'il lance une commande system qui dépend de l'OS :
ipconfig sous WIN NT,
winipcfg sous WIN 95,
ou bien il lit le fichier /etc/resolv.conf sous unix.
Bref, je trouve ça zarb...
 
Sur ma machine de dev (XP pro), ça marche pas tout simplement parce-qu'il cherche des chaînes du genre :
- Host Name
- Primary Dns Suffix
- DNS Suffix
- DNS Servers
Malheureusement, mon XP est en français et ipconfig cause pas en English !
 
Bon, c'est pas grâve, on va ajouter une propriété de plus dans les fichiers de conf de l'appli :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-09-2004 à 16:23:00   

Reply

Marsh Posté le 15-09-2004 à 19:02:46    

Mara's dad a écrit :

Tout d'abord, j'utilise InternetAddress.parse( strEMailAddress ) qui vérifie la validité de l'adresse selon la RFC822.


Petite parenthèse :
 
Contrairement à ce que la doc laisse croire, cette classe ne suit que *certaines* règles RFC822. Tu peux entrer pas mal de truc pas valide sans que ça bronche.  [:aline2003]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 19:39:08    

elle est où la regexp de 3 pages qui valide selon cette rfc déjà ? :D


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 15-09-2004 à 19:44:43    

les expressions rationnelles, c'est pour les faibles :o

Reply

Marsh Posté le 15-09-2004 à 21:11:06    

Jubijub a écrit :

elle est où la regexp de 3 pages qui valide selon cette rfc déjà ? :D


C'est une regex assez monstrueuse.
 
En plus, je suis tombé sur des comportements un peu bizarre d'une librairie regex de jakarta - je dois encore investiguer - ce qui fait que tu ne peux pas te contenter de taper une regex toute faite sans vérifier.
 
Disons que pour la plupart des applications "business", je ne pense pas que RFC822 soit vraiment nécessaire. En général, c'est plutôt un superset de ce RFC dont on a besoin, car un tas d'adresses valides selon RFC822 ne sont communément pas acceptables sur un form web.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 21:11:23    

lorill a écrit :

les expressions rationnelles, c'est pour les faibles :o

[:belgarath]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 21:22:00    

Reply

Marsh Posté le 15-09-2004 à 21:37:57    


regular = rationnel ? Intéressant. I'm sorry but my French is not that fluent.
 
T'es bien gentil de fournir une recherche google; je ne mettais pas en doute ton utilisation du terme qui est tt à fait reconnu mais bien le terme lui-même. "Traduction erronée" en Français dit-on. Je me demande si le terme original est lui-même bien indiqué.
 
ALORS CALMOS.
 
Enfin, c'est pour éviter ce genre de trucs que je préfère les termes techniques en english (j'adore à ce propos l'imagination débordante des francophones, surtout des Français, pour tout traduire).
 
Fin de la parenthèse.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 21:46:02    

sircam a écrit :


ALORS CALMOS.

JE T'EMMERDE.
 
 
et je te signale au passage que les maths sont une des dernières disciplines où les articles fondementaux sont encore publiés dans la langue d'origine de l'auteur, comme la France est à la pointe, c'est un des plus gros vecteur du français dans le monde scientifique.

Reply

Marsh Posté le 15-09-2004 à 21:50:38    

sircam a écrit :

Petite parenthèse :
 
Contrairement à ce que la doc laisse croire, cette classe ne suit que *certaines* règles RFC822. Tu peux entrer pas mal de truc pas valide sans que ça bronche.  [:aline2003]


M'en tape :D
 
La spec que je doit appliquer dis que l'adresse doit être de la forme :
XXXX@XXXX.XXX
Si je l'applique, je me demande combien d'adresses ne passeront pas :pt1cable:  
Donc InternetAddress.parse() me suffit.
 
Trouvez-moi donc une classe capable d'interroger un DSN de manière simple, parce-que dsnjava c'est quand même un gros morceau pour ce que j'ai à faire.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 15-09-2004 à 22:51:21    

d4rK 3Mpr0R a écrit :

JE T'EMMERDE.
 
 
et je te signale au passage que les maths sont une des dernières disciplines où les articles fondementaux sont encore publiés dans la langue d'origine de l'auteur, comme la France est à la pointe, c'est un des plus gros vecteur du français dans le monde scientifique.


Espèce de petit prétentieux pédant et malpoli. Et chauvin de surcroit. Heureusement que tous les pays ne font pas de même.
 
Tu utilises ton vocabulaire comme bon te semble et je ferai de même.
 
En tout état de cause, la politesse élémentaire est de rigueur sur ce forum. J'espère avoir été particulièrement clair sur ce point.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 22:54:04    

Mara's dad a écrit :

M'en tape :D
 
La spec que je doit appliquer dis que l'adresse doit être de la forme :
XXXX@XXXX.XXX
Si je l'applique, je me demande combien d'adresses ne passeront pas :pt1cable:  
Donc InternetAddress.parse() me suffit.
 
Trouvez-moi donc une classe capable d'interroger un DSN de manière simple, parce-que dsnjava c'est quand même un gros morceau pour ce que j'ai à faire.


 
Tu peux pas te faire une chtite classe qui intérrige le serveur?? Ca doit pas être super compliqué, d'interroger un DNS, si?


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
Reply

Marsh Posté le 15-09-2004 à 22:56:07    

Mara's dad a écrit :

M'en tape :D
 
La spec que je doit appliquer dis que l'adresse doit être de la forme :
XXXX@XXXX.XXX
Si je l'applique, je me demande combien d'adresses ne passeront pas :pt1cable:  
Donc InternetAddress.parse() me suffit.


InternetAddress autorise une adresse telle que "sircam", qui ne répond pas à ta spec.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 22:57:31    

sircam a écrit :

Espèce de petit prétentieux pédant et malpoli. Et chauvin de surcroit. Heureusement que tous les pays ne font pas de même.

et gros et feignasse aussi. mais qui t'emmerde d'une force hallucinante.
 
Et qui sait faire du google aussi.
 
Quand à la politesse, tu as ouvert les hostilités.
 
Qu'on sache pas quelquechose, ça arrive, je passe ma vie dans google, mais qu'on sache pas chercher et qu'on envoie chier celui qui donne l'info, ça me fout hors de mes gonds.

Reply

Marsh Posté le 15-09-2004 à 23:08:39    

d4rK 3Mpr0R a écrit :

et gros et feignasse aussi. mais qui t'emmerde d'une force hallucinante.
 
Et qui sait faire du google aussi.
 
Quand à la politesse, tu as ouvert les hostilités.
 
Qu'on sache pas quelquechose, ça arrive, je passe ma vie dans google, mais qu'on sache pas chercher et qu'on envoie chier celui qui donne l'info, ça me fout hors de mes gonds.


Je vois que tu persiste dans la trivialité. Je ne comprends pas non plus ton agressivité.
 
Et désolé, je n'ai été impoli à aucun moment. Mon emoticon :belgarath était en réponse à "les expressions rationnelles, c'est pour les faibles :o"; post qui ne constituait pas un élément de solution et à propos duquel je n'ai fait qu'exprimer ma désaprobation pour une traduction.
 
Je comprends aussi que tu fustiges les critiques gratuites, mais cela ne s'applique pas au cas d'espèce. Je te propose de relire calmement mes posts et mes explications.
 
Si ton animosité à mon égard persiste, je suggère que tu m'en fasse part en MP pour ne pas continuer à polluer ce thread plus avant, ou tout simplement d'en rester là.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 15-09-2004 à 23:39:16    

nraynaud> ta gueule :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 15-09-2004 à 23:52:35    

prout :o

Reply

Marsh Posté le 16-09-2004 à 00:36:59    

C'est un comportement digne d'un boulet catégorie poid lourd.
 
je t'envoie donc te faire foutre en bonne et dûe forme  :hello:  
 
 :ange:


Message édité par Jubijub le 16-09-2004 à 00:39:58

---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 16-09-2004 à 11:11:59    

sircam a écrit :

InternetAddress autorise une adresse telle que "sircam", qui ne répond pas à ta spec.


:lol: C'est vrai :lol:
 
Bon, c'est pas grâve, je vais la repasser par ma petit regex préférée avant alors.
 
Sinon, ce serait cool si vous alliez vous écharper ailleurs.
C'est un topic respectable içi :o
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-09-2004 à 11:16:21    

gfive a écrit :

Tu peux pas te faire une chtite classe qui intérrige le serveur?? Ca doit pas être super compliqué, d'interroger un DNS, si?


 
Si, c'est compliqué :sweat:
 
C'est pas simple comme une requête HTTP. Y'a plein de params en binaire, et faut décoder les réponses.
 
Regarde le source de dnsjava, tu va comprendre.
Sinon y'a aussi les RFC1034 et RFC1035 .


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-09-2004 à 11:36:49    

benou a écrit :

nraynaud> ta gueule :o

sa gueule à l'autre aussi hein :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-09-2004 à 11:40:21    

the real moins moins a écrit :

sa gueule à l'autre aussi hein :o


j'en ai marre de voir les "vieux" insulter ou envoyer bouler tout le monde à tout vas.  
ca devient n'importe quoi ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 16-09-2004 à 11:43:09    

Mara's dad a écrit :

Si, c'est compliqué :sweat:
 
C'est pas simple comme une requête HTTP. Y'a plein de params en binaire, et faut décoder les réponses.
 
Regarde le source de dnsjava, tu va comprendre.
Sinon y'a aussi les RFC1034 et RFC1035 .


 
j'ai pôs l'temps, là maintenant, mais bon, je te crois sur parole! :)


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
Reply

Marsh Posté le 16-09-2004 à 11:48:18    

benou a écrit :

j'en ai marre de voir les "vieux" insulter ou envoyer bouler tout le monde à tout vas.  
ca devient n'importe quoi ...


Ca vole effectivement assez bas et dans tous les sens. C'est pas un salon de thé ici, mais y'a un minimum à respecter et des limites à ne pas dépasser.
 
M'enfin tant que les habitués s'insultent entre eux...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 16-09-2004 à 11:52:11    

benou a écrit :

j'en ai marre de voir les "vieux" insulter ou envoyer bouler tout le monde à tout vas.  
ca devient n'importe quoi ...

roh mais ta gueule hein :pfff:
 
 
 
 
[:ddr555]
 
 
.. t'as raison. on passe nos nerfs de nerdz [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-09-2004 à 11:52:20    

the real moins moins a écrit :

sa gueule à l'autre aussi hein :o


Coucou :hello:
T'as rien d'autre à dire :??:
 
Sur le sujet, bien entendu :sol:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-09-2004 à 11:53:40    

si: le truc de jaf que tu utilises, je l'ai laissé tomber parce que 1/ j'ai trouvé le code tout moisi 2/ ça me foutait une dependence sur ce gros jar juste pour valider une email.
j'ai fini par m'en sortir avec une pauvre regex.
apres si le mail arrive pas à destination bah c'est qu'il etait pas valide, tant pis pour l'user [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-09-2004 à 11:54:50    

Du grain à moudre :
 
^[\\w_.-]+@[\\w_.-]+\\.[\\w]+$
 
C'est ce que j'utilise pour me conformer à la spec avec org.apache.oro.text.regex.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-09-2004 à 11:55:24    

donc si on parle de mot de passe/validation de compte et ce genre de truc, un bon systeme c'est peut etre l'envoi d'un mail avec un lien vers une page qui va "activer/valider" le compte en question, non?
 
je l'ai vu faire sur plusieurs sites, ça marche bien... la page en question a un parametre genre hash, et n'est valide qu'un certain temps..
 
 
maintenant j'ignore tout de ton contexte...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 16-09-2004 à 11:56:08    

the real moins moins a écrit :

si: le truc de jaf que tu utilises, je l'ai laissé tomber parce que 1/ j'ai trouvé le code tout moisi 2/ ça me foutait une dependence sur ce gros jar juste pour valider une email.
j'ai fini par m'en sortir avec une pauvre regex.
apres si le mail arrive pas à destination bah c'est qu'il etait pas valide, tant pis pour l'user [:spamafote]


Je l'utilise pas :sarcastic:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-09-2004 à 11:56:19    

plus [:aloy]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed