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

Composants Java Discussion :

API permettant de vérifier des adresses mail valides ou pas


Sujet :

Composants Java

  1. #21
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Personnellement je trouve qu'après une certaine taille les regex deviennent imbuvable, avec pour conséquence que plus personne ne sait comment faire pour modifier un truc.
    Autant alors le faire "à la main", décomposé en méthode claire. C'est bien plus simple et évolutif. Je suis assez contre cette idée de mettre toujours des regex...


    En même temps on sait quoi faire pour ne pas être spammé... Il suffit de mettre des chiffres au début de son mail...

    Au lieu de rechercher la validité (impossible...), il vaudrait peut-être mieux corriger les erreurs classiques, genre remplacer tous les "gmai." par "gmail."

    Ca permettrait au moins de gérer une liste d'erreurs et leur correction, sans devoir appeller le programmeur qui connaît la regex à chaque fois qu'on tombe sur un nouveau type d'erreur.

    De toutes façons, toutes les vérifications auxquelles tu penses sont peut-être mauvaises : je peux très bien vraiment avoir un mail "1.2..3@123.fr", par exemple... En revanche, je peux avoir un faux mail qui serait "ceciestunfauxmail@hotmail.com"... La solution, c'est peut-être de ne plus encoder les mails à la main ?
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  2. #22
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Citation Envoyé par JoeChip Voir le message


    En même temps on sait quoi faire pour ne pas être spammé... Il suffit de mettre des chiffres au début de son mail...

    Au lieu de rechercher la validité (impossible...), il vaudrait peut-être mieux corriger les erreurs classiques, genre remplacer tous les "gmai." par "gmail."

    Ca permettrait au moins de gérer une liste d'erreurs et leur correction, sans devoir appeller le programmeur qui connaît la regex à chaque fois qu'on tombe sur un nouveau type d'erreur.

    De toutes façons, toutes les vérifications auxquelles tu penses sont peut-être mauvaises : je peux très bien vraiment avoir un mail "1.2..3@123.fr", par exemple... En revanche, je peux avoir un faux mail qui serait "ceciestunfauxmail@hotmail.com"... La solution, c'est peut-être de ne plus encoder les mails à la main ?
    Ben après il peut vouloir imposer un standard. C'est ce qui se fait dans les boites, pour simplifier la recherche du mail d'une personne.

  3. #23
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut Tri JTable bizarre complétement disjoncté
    Bonjour a tous,

    En cliquant sur l'en-tête de ma colonne dans mon JTable, j'aimerais pouvoir trier par ordre croissant ou décroissant.
    Pour ce faire, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    //active le tri du tableau
    		table.setAutoCreateRowSorter(true);
    		SortKey[] sks = new SortKey[]{ new RowSorter.SortKey(0, SortOrder.ASCENDING) };
    		//tri defaut tab sur 1ère colonne ds l'ordre croissant 
    		table.getRowSorter().setSortKeys(Arrays.asList(sks));
    je me rencontre avec stupeur que quand je clique sur la l'entête de la colonne ligne, cela me trie de facon trés trés bizarre !!


    (voir les images)


    Je comprend pas, j'ai déjà fait ce genre de tri et cela fonctionne dans une autre application swing.

    Quelqu'un a-t-il une solution à me proposer ?

  4. #24
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Le type de données de "Ligne", ce ne serait pas des String, par hasard ?

    Ca me paraît le cas typique d'un classement de String et non d'entier.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #25
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    tm.addRow(new Object[]{ligne, portable, "", msgErreur, nomprenom, nbpsymphonie });

    ligne étant un int.

    donc, non.

    Au départ quand je clique sur le bouton controler j'ai bien l'ascendance de ma colonne. (voir image)

    le problème vient quand je clique sur l'entête de ma colonne. (voir image post précedent)

    vraiment étrange, trés étrange, j'ai pas compris

  6. #26
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    tm.addRow(new Object[]{ligne, portable, "", msgErreur, nomprenom, nbpsymphonie });

    ligne étant un int.
    Et seule cette ligne-là peut ajouter une row ?
    Parce qu'il suffit d'un seul objet qui ne soit pas un Integer, et patatras.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #27
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Et seule cette ligne-là peut ajouter une row ?
    Parce qu'il suffit d'un seul objet qui ne soit pas un Integer, et patatras.
    Oui, mais c'est pas là le souci je pense.

    c'est un petit programme et je vois bien que ligne est un Integer

  8. #28
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    Citation Envoyé par JoeChip Voir le message


    En même temps on sait quoi faire pour ne pas être spammé... Il suffit de mettre des chiffres au début de son mail...

    Au lieu de rechercher la validité (impossible...), il vaudrait peut-être mieux corriger les erreurs classiques, genre remplacer tous les "gmai." par "gmail."

    Ca permettrait au moins de gérer une liste d'erreurs et leur correction, sans devoir appeller le programmeur qui connaît la regex à chaque fois qu'on tombe sur un nouveau type d'erreur.

    De toutes façons, toutes les vérifications auxquelles tu penses sont peut-être mauvaises : je peux très bien vraiment avoir un mail "1.2..3@123.fr", par exemple... En revanche, je peux avoir un faux mail qui serait "ceciestunfauxmail@hotmail.com"... La solution, c'est peut-être de ne plus encoder les mails à la main ?
    le:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new InternetAddress(email2,true);
    de javamail que j'utilise n'est pas trés performant.

    il me rejette:
    patcat41@hotmail.fr

    quand je vais sur http://mailtester.com/testmail.php
    et que je tape : patcat41@hotmail.fr


    L'adresse patcat41@hotmail.fr est bonne:
    msg mailtester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Mail servers found for domain:
    - mx2.hotmail.com (priority 5, ip address: 65.54.188.94)
    - mx3.hotmail.com (priority 5, ip address: 65.54.188.110)
    - mx4.hotmail.com (priority 5, ip address: 65.55.37.72)
    - mx1.hotmail.com (priority 5, ip address: 65.55.37.104)
    Using mail server with lowest priority number:
    - mx2.hotmail.com (priority 5, ip address: 65.54.188.72) 
        Mailserver identification:
    BAY0-MC1-F35.Bay0.hotmail.com Sending unsolicited commercial or bulk e-mail to Microsoft's computer network is prohibited. Other restrictions are found at http://privacy.microsoft.com/en-us/anti-spam.mspx. Fri, 25 May 2012 02:52:02 -0700 
        E-mail address is valid

    sur http://www.protimail.org/ l'adresse mail est bonne et pas d'autres testeur d'adresse mail alors qu'avec Javamail, l'adresse est pas bonne.


    Le new InternetAddress(email2,true); de Javamail est-il encore fiable pour traiter les emails ?

  9. #29
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par mouss4rs Voir le message

    Le new InternetAddress(email2,true); de Javamail est-il encore fiable pour traiter les emails ?
    Bien sûr. Par contre ton code ne l'est vraisemblablement pas!

    Ce petit code montre bien que javamail se comporte correctement pour cette adresse:

    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
    package mail;
     
    import javax.mail.internet.AddressException;
    import javax.mail.internet.InternetAddress;
     
    public class Main {
     
    	public static void main(String argv[]){
    		String[] emails = new String[] {
    				"niceandsimple@example.com",
    				"simplewith+symbol@example.com",
    				"less.common@example.com",
    				"a.little.more.unusual@dept.example.com",
    				"user@[IPv6:2001:db8:1ff::a0b:dbd0]",
    				"\"much.more\\ unusual\"@example.com",
    				"\"very.unusual.@.unusual.com\"@example.com",
    				"\"very.(),:;<>[]\\\".VERY.\\\"very@\\\\\\ \\\"very\\\".unusual\"@strange.example.com",
    				"0@a",
    				"!#$%&'*+-/=?^_`{}|~@example.org",
    				"\"()<>[]:,;@\\\\\\\"!#$%&'*+-/=?^_`{}|\\ \\ ~\\ \\ \\ ?\\ \\ \\ ^_`{}|~.a\"@example.org",
    				"\"\"@example.org",
    				"postbox@com" ,
    				"Abc.example.com",// (an @ character must separate the local and domain parts)
    				"Abc.@example.com", // (character dot(.) is last in local part)
    				"Abc..123@example.com", // (character dot(.) is double)
    				"A@b@c@example.com", // (only one @ is allowed outside quotation marks)
    				"a\"b(c)d,e:f;g<h>i[j\\k]l@example.com", // (none of the special characters in this local part is allowed outside quotation marks)
    				"just\"not\"right@example.com", // (quoted strings must be dot separated, or the only element making up the local-part)
    				"this is\"not\\allowed@example.com", // (spaces, quotes, and backslashes may only exist when within quoted strings and preceded by a slash)
    				"this\\ still\\\"not\\\\allowed@example.com", // (even if escaped (preceded by a backslash), spaces, quotes, and backslashes must still be contained by quotes)
    				"patcat41@hotmail.fr"
     
    		};
    		for (String email: emails)	
    			testMail(email);
    	}
     
    	private static boolean testMail(String email) {
    		try{
    		    new InternetAddress(email,true);
    		    System.out.printf("Adresse email <%s> ok\n",email);
    		    return true;
    		} catch (AddressException e){
    			System.out.printf("Adresse email <%s> incorrecte: %s\n",email,e.getMessage());
    			return false;
    		}
    	}
    }
    Code txt : 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
    Adresse email <niceandsimple@example.com> ok
    Adresse email <simplewith+symbol@example.com> ok
    Adresse email <less.common@example.com> ok
    Adresse email <a.little.more.unusual@dept.example.com> ok
    Adresse email <user@[IPv6:2001:db8:1ff::a0b:dbd0]> incorrecte: Illegal route-addr
    Adresse email <"much.more\ unusual"@example.com> ok
    Adresse email <"very.unusual.@.unusual.com"@example.com> ok
    Adresse email <"very.(),:;<>[]\".VERY.\"very@\\\ \"very\".unusual"@strange.example.com> ok
    Adresse email <0@a> ok
    Adresse email <!#$%&'*+-/=?^_`{}|~@example.org> ok
    Adresse email <"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}|\ \ ~\ \ \ ?\ \ \ ^_`{}|~.a"@example.org> ok
    Adresse email <""@example.org> ok
    Adresse email <postbox@com> ok
    Adresse email <Abc.example.com> incorrecte: Missing final '@domain'
    Adresse email <Abc.@example.com> ok
    Adresse email <Abc..123@example.com> ok
    Adresse email <A@b@c@example.com> incorrecte: Illegal character in domain
    Adresse email <a"b(c)d,e:f;g<h>i[j\k]l@example.com> incorrecte: Missing '"'
    Adresse email <just"not"right@example.com> ok
    Adresse email <this is"not\allowed@example.com> incorrecte: Missing '"'
    Adresse email <this\ still\"not\\allowed@example.com> incorrecte: Missing '"'
    Adresse email <patcat41@hotmail.fr> ok

    On notera au passage qu'il tolère cependant certains emails que la page de wikipedia considère comme invalides Mais il n'y a pas de faux négatif.

  10. #30
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    tm.addRow(new Object[]{ligne, portable, "", msgErreur, nomprenom, nbpsymphonie });

    ligne étant un int.
    Non, mais on s'en fout. Le table model par défaut retourn Object.class pour le type des colonnes, donc on compare les toString. Tu dois définir explicitement dans le model le type des colonne, en surclassant la méthode getColumnClass

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        DefaultTableModel tm = new DefaultTableModel() {  
            Class<?>[] types = new Class<?> [] {  
                Integer.class, String.class,String.class,String.class,String.class,Integer.class
            };  
     
            @Override  
            public Class getColumnClass(int columnIndex) {  
                return types [columnIndex];  
            }  
        }; 
    tm.addRow(new Object[]{ligne, portable, "", msgErreur, nomprenom, nbpsymphonie });

    edit: de plus, je ne suis pas sur que le defaultrowsorter ne fait pas de toutes façons systématique un String compare, tant que tu n'invoke pas explicitement sa méthode secComparator(colonne, comparateur)

  11. #31
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    En faite, j'ai compris pourquoi patcat41@hotmail.fr et l'autre adresse sont fausse pour le internetAdress.

    J'ai regardé dans le fichier csv et se sont les seules à comporter des espaces après le .fr.

    elles sont écrit du genre:
    patcat41@hotmail.fr[espace]

    du coup j'ai mit la fonction trim():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    email2 = nextLine2[38].trim();
    Conclusion:

    ce n'est pas javamail le souci mais la chaîne contenait un espace à la fin.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Mail] Vérifier des adresses email
    Par calitom dans le forum Langage
    Réponses: 6
    Dernier message: 02/06/2008, 14h32
  2. Saisie auto des adresses mail
    Par Yepazix dans le forum Outlook
    Réponses: 6
    Dernier message: 17/01/2008, 16h26
  3. Utilisation des adresses mails
    Par LP-mpascolo dans le forum Excel
    Réponses: 3
    Dernier message: 02/11/2007, 10h47
  4. [c#, vs2005, WinForms]Vérifier validité adresse mail
    Par Filippo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/06/2007, 09h10
  5. [VBA][outlook] récupération des adresses mail
    Par arno2004 dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 27/07/2004, 18h48

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