Newsgroup: it.comp.lang.perl
Titolo: espressione regolare per verificare l'indirizzo email

Ciao, 
ho creato un espressione regolare in perl per verificare che
l'indirizzo email sia stato inserito nella forma 
pi...@pallino.it
, in
parte funziona in parte no; cioč se inserisco un indirizzo email del
tipo pinco@a.a funziona, ma se inserisco un indirizzo nella farma
pi...@pallino.it
 non funziona mi dice che e' sbagliato! 
if ($EMail !~ /[A-Za-z0-9\.\-\_].?\@[A-Za-z0-9\-\_].?\.[A-Za-z].?/) 
{ 
&printError("L'indirizzo di posta elettronica non &egrave;
corretto."); 
} 
Qui sopra c'e' il codice, sapreste dirmi dove e' il problema, o
indicarmi un espressione regolare da utilizzare? 
Grazie 
A. Presto

 un indirizzo di email validissimo.
...esatto, mentre questo, ad esempio,
 
pippo.@iol.it
non lo è. 
Max

  ...ma ci sarebbero comunque falle, a voler semplificare.
Ricordo che esiste
Mail::CheckUser - checking email addresses for validness
Che uso e mi sembra funzionare bene. Dal perldoc
       It makes several checks:
       1   it checks syntax of email address;
       2   it checks if there any MX record for specified in
           email domain or if there exist such host;
       3   it tries to connect to email server directly via SMTP
           to check if mailbox is valid. Old versions of this
           module have performed this check via VRFY command. Now
           module uses another check: it uses combination of com­
           mands MAIL and RCPT which simulates fake sending of
           email. Old VRFY check is still supported (see
           $Mail::CheckUser::Use_RCPT_Check global variable
           description in the section on "GLOBAL VARIABLES").
           However please note VRFY can't detect bad mailboxes in
           many cases while MAIL/RCPT works. For example hot­
 
mail.com
 can be verified with MAIL/RCPT check while
           VRFY check doesn't work.
       If is possible to turn of all networking checks (second
       and third checks). See the section on "GLOBAL VARIABLES".
Saluti,
Valerio

Si, non e' un modulo standard pero' !
Ad ogni modo credo sempre che le semplici verifiche vadano fatte clientside
(in modoche l'utente non perda tempo) e quelle approfondite serverside. Come
verifica approfondita credo sempre che la migliore sia :
mandare per email un codice che e' indispensabile per procedere (che va
comunicato nel form sucessivo).
Questo fa molto di piu' del modulo in questione. Ti sa anche dire se tale
mail (valida) e' di proprieta' dell'utente (o almeno se l'utente vi ha
accesso). Con il modulo Mail::CheckUser invece se digito la mail di uno
sconosciuto di ICQ (tanto per intenderci) non ci sono problemi !!!
Sono andato fuori tema ?  Lo so, il mio e' uno stratagemma e non una
espressione regolare !
Si, ma almeno non sono il primo, quindi non mi devo adossare tale colpa !!!
:-)
Alex

 comunicato nel form sucessivo).
E' vero, uso anch'io questo sistema.
Però per verificare semplicemente se l'indirizzo è corretto uso quel
modulo (senza network checks che sono inutili).
Valerio

In che senso non è standard?
Non e` incluso nella distribuzione.
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
ICQ# 76660101
==> FAQ di it.comp.lang.perl: 
http://www.borders.it/perl/faq/
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 dominio di primo livello).
Questa dei pianeti non la sapevo, mi sembra abbastanza buffa!
Comunque, temo che il classico {2,3} o il "planetario" {2,4} ormai vadano
sostituiti con un bel "+", visto che con l'approvazione dei nuovi TLD non ci
sono piu' regole di lunghezza. Se non sbaglio ce ne sono di quattro o anche
cinque caratteri.
Se penso a in quanti posti devo aver messo {2,3} mi sento male...
Bye
silvio

parte funziona in parte no; cioט se inserisco un indirizzo email del
