Vérification d'une adresse e-mail

Résolu
Kaneda Shotaro Messages postés 48 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 12 septembre 2009 - 28 août 2005 à 18:26
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 6 déc. 2005 à 21:38
Quelqu'un a-t'il une fonction qui permette de vérifier sir une
adresse mail est valide (sans vérifier qu'elle existe réellement) ?



Merci.

@+, Kaneda Shotaro
A voir également:

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 août 2005 à 20:58
Essaie sans recopier dans un autre buffer, c'est inutile.

char *c = szmail;

partant de là suffit d'vancer le pointeur tant que != [mailto:'@' '@']. Si tu atteins le null final alors pas bon sinon tu regardes de combiens tu as avancé: if(2 > (c - szmail)) return 0;

idem pour la suite.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 août 2005 à 18:56
Définis d'abord la règle de vérification:
- caractères interdits et/ou à quelle place.
- 1 [mailto:'@' '@'] et précédée et suivie de quoi.
- etc...

ciao...
BruNews, MVP VC++
0
Kaneda Shotaro Messages postés 48 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 12 septembre 2009
28 août 2005 à 19:04
Ok mais si quelqu'un avait une fonction toute faite ça m'aiderait bien...


@+, Kaneda Shotaro
0
dark_naruto25 Messages postés 127 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 9 mai 2011
28 août 2005 à 20:20
Salut, je ne sais pas si c'est correct, mais essay ça :
int Recherche(char* Mail)
{
int iMail = strlen(Mail); iAt 0; // 1 @
if( Mail[iMail-3]!='.' OR Mail[iMail-2]!='.' ) // si pas d'extension du DNS .com ou .fr
return 1;
for(int i=0;i<(iMail-4);i++)
if( Mail[i] == [mailto:'@' '@'] AND iAt == 0 )
iAt = 1;
if( iAt = 0 ) return 2;
return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kaneda Shotaro Messages postés 48 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 12 septembre 2009
28 août 2005 à 20:21
J'ai réalisé cette fonction. Si quelqu'un peut me dire ce qu'il en pense... Je débute en C++.

Merci



bool EMailIsValid(char *AdresseMail)

{

char *Caractere;

int ch = '@';

int TailleLogin;

char string[MAX_PATH];

sprintf_s(string, MAX_PATH, "%s", AdresseMail);

Caractere = strchr(string, ch);

if (Caractere NULL) // Test du symbole arobase (@)> Il doit être présent

return FALSE;

TailleLogin = (strlen(string) - strlen(Caractere));

if (TailleLogin < 2) // Si le login contient moins de 2 caractères l'adresse est fausse

return FALSE;

ch = ' ';

Caractere = strchr(string, ch);

if (Caractere !NULL) // Test du symbole espace ( )> Il doit être absent

return FALSE;

ch = '.';

Caractere = strrchr(string, ch);

if (Caractere == NULL) // Test du
symbole point (.) => Il doit être présent en fin d'adresse

return FALSE;

if (strlen(Caractere) > 4) // S'il y a plus de 4
caractères après le dernier point alors l'adresse n'est pas valide

return FALSE;

if ((strlen(string) - (TailleLogin +
strlen(Caractere))) <= 2) // Un nom de domaine a
toujours plus d'un caractère

return FALSE;

return TRUE;

}

@+, Kaneda Shotaro
0
Kaneda Shotaro Messages postés 48 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 12 septembre 2009
28 août 2005 à 21:47
Pour Dark_Naruto25 :

J'ai du adapter ton code pour que ça compile (j'ai Visual Studio 2005 beta) :

int Recherche(char* Mail)

{

int iMail = strlen(Mail);

int iAt 0; // 1 @

if((Mail[iMail-3]!='.') | (Mail[iMail-2]!='.')) // si pas d'extension du DNS .com ou .fr

return 1;

for(int i=0;i<(iMail-4);i++)

if ((Mail[i] == '@')&(iAt == 0))

iAt = 1;

if( iAt == 0 )

return 2;

return 0;

}

Et bizzarement après plusieurs test le résultat est toujours le même : 1



Pour BruNews :

Merci, je vais modifier mon code et voir ça. Je mettrais ici le résultat pour les corrections !

@+, Kaneda Shotaro
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
28 août 2005 à 22:49
Mieu vaut aller voir une des rfc avant de le faire.
Là je suis sur un verificateur d'adresse email évolué en C sans utiliser les regex , je vais t'envoyer les sources dés que je fini.
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
28 août 2005 à 22:51
J'ai oublier d'ajouter: le tout sans utiliser la moindre lib, sauf pour tester avec le printf(), sinon strlen() strcpy()... tout fait maison.
0
Kaneda Shotaro Messages postés 48 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 12 septembre 2009
29 août 2005 à 07:37
J'attends avec impatience ! Merci.

@+, Kaneda Shotaro
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
6 déc. 2005 à 21:38
Bonsoir,



[auteurdetail.aspx?ID=195941 ]juki webmaster
> Est ce que tu aurais un numéro de rfc ou l'on peut trouver
comment est constitué une adresse mail ?



Merci,

Matt...
0
Rejoignez-nous