Hallo,
ich machs immer so:
#!/usr/bin/perl -wT
use strict;
use Net::DNS;
sub is_email
{
( my $email) = @_;
return 0 if $email !~ /[1]+(?![^(\040)<>@,;:".\[]\000-\037\x80-\xff])(?:.[^(\040)<>@,;:".\[]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\[]\000-\037\x80-\xff]))*@[^(\040)<>@,;:".\[]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\[]\000-\037\x80-\xff])(?:.[^(\040)<>@,;:".\[]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\[]\000-\037\x80-\xff]))+$/o;
( my $maildomain = $email) =~ s/[2]*@//;
if( !( my @mx = mx( $maildomain) ) )
{
return 0;
}
return 1;
} # is_email
Das ist ein etwas abgespeckterer Ausdruck, der
keine Comments und Routingangaben erlaubt.
Wer benutzt die denn schon, bzw. kann sie weiterverarbeiten?
Außerdem prüfe ich noch, ob für die Domain ein MX existiert.
CYa
GONZO