sub checkmail { my $mail = shift; return '' if !defined $mail || ($mail =~ tr/\@//) != 1; my ($user,$serv); if ($mail =~ m/^(.+)@(.+)$/s) { $user = lc $1; $serv = lc $2; } else { return '' } $serv =~ s/\Q$1// while $serv =~ /([\n\r \])>}'";,])$/; return '' if !($serv =~ /^.+\..+$/) || $serv =~ /[^a-z0-9.-]/ || $serv =~ /\.\./g || $serv =~ /\.$/ || (($user =~ tr/"//)/2) =~ /\./ ; $user =~ s/""//g; $user =~ s/\Q$1// while $user =~ /^([\n\r \[{(<';,])/; return '' if $user =~ /[^a-z0-9._+&="-]/; return $user . '@' . $serv; }