Current File : /home/caballoscriollos/www/phplist/lists/admin/tests/test_is_email.php
<?php
#require_once dirname(__FILE__)."./../commonlib/lib/userlib.php";
#testEmail();
class test_is_email extends phplistTest {
public $name = 'isEmail';
public $purpose = 'Test email validation';
function runtest(){
$emailAddresses = array(
"name@company.com" => TRUE , // mother of all emails
"name.last@company.com" => TRUE , // with last name
"name.company.com" => FALSE, // two dots
"name@company..com" => FALSE, // two dots
"name@company@com" => FALSE, // two ats
"name@company.co.uk" => TRUE , // more .domain sections
"name@.company.co.uk" => FALSE, // more .domain sections wrongly
"n&me@company.com" => TRUE , //
"n'me@company.com" => TRUE , //
"name last@company.com" => FALSE, // unquoted space is wrong
'"namelast"@company.com' => TRUE , // Quoted string can be anything, as long as certain chars are escaped with \
'"name last"@company.com' => TRUE , // Quoted string can be anything, as long as certain chars are escaped with \
'" "@company.com' => TRUE , // Quoted string can be anything, as long as certain chars are escaped with \
"\"name\ last\"@company.com" => TRUE , // Quoted string can be anything, as long as certain chars are escaped with \
'"name\*last"@company.com'=> TRUE , // Quoted string can be anything, as long as certain chars are escaped with \
".@company.com" => FALSE, // single dot is wrong
"n.@company.com" => FALSE, // Ending dot is nok
".n@company.com" => FALSE, // Starting dot is nok
"n.n@company.com" => TRUE , // dot is ok between text
"@company.com" => FALSE, // Local part too short
"n@company.com" => TRUE , // Local part not yet too short
"abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd@company.com" => TRUE , // Local part too long
"abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcde@company.com" => FALSE , // Local part not yet too long
"mailto:name@company.com" => FALSE , // protocol included @@ maybe support during import?
"name,name@company.com" => FALSE , // non-escaped comma
"user1@domain1.com;user2@domain2.com" => FALSE, // Mantis #0010174 @@ maybe support during import?
"name@127.0.0.1" => TRUE , // not in the RFC but generally accepted (?)
# From http://en.wikibooks.org/wiki/Programming:JavaScript:Standards_and_Best_Practices
"me@example.com" => TRUE ,
"a.nonymous@example.com" => TRUE ,
"name+tag@example.com" => TRUE ,
## next one is actually officiall valid, but we're marking it as not, as it's rather uncommon
# '"name\@tag"@example.com' => TRUE ,
'"name\@tag"@example.com' => FALSE , // � this is a valid email address containing two @ symbols.
"escaped\ spaces\ are\ allowed@example.com" => TRUE ,
'"spaces may be quoted"@example.com' => TRUE ,
"!#$%&'*+-/=.?^_`{|}~@example.com" => TRUE ,
# "!#$%&'*+-/=.?^_`{|}~@[1.0.0.127]" => TRUE , # Excluded
# "!#$%&'*+-/=.?^_`{|}~@[IPv6:0123:4567:89AB:CDEF:0123:4567:89AB:CDEF]" => TRUE , #Excluded
# "me(this is a comment)@example.com" => TRUE , #Excluded
"me@" => FALSE,
"@example.com" => FALSE,
"me.@example.com" => FALSE,
".me@example.com" => FALSE,
"me@example..com" => FALSE,
"me.example@com" => FALSE,
"me\@example.com" => FALSE,
"s'oneill@somenice.museum" => TRUE,
## some uncommon TLDs
"me@domain.museum" => TRUE,
"me@me.me" => TRUE,
"jobs@jobs.jobs" => TRUE,
"hello@me.nonexistingtld" => FALSE,
## next one is actually officiall valid, but we're marking it as not, as it's rather uncommon
# "me\@sales.com@example.com" => TRUE,
"me\@sales.com@example.com" => FALSE,
# From http://www.faqs.org/rfcs/rfc3696.html
"customer/department=shipping@example.com" => TRUE ,
'$A12345@example.com' => TRUE ,
"!def!xyz%abc@example.com" => TRUE ,
'\\\'a0@example.com' => FALSE,
);
print("<P>PHP " . PHP_VERSION . " running on " . PHP_OS . " - Testing email address validation...</P>");
$resultString ="";
$nFoundWrong = 0;
$boolean = array("FALSE","TRUE");
foreach ($emailAddresses as $emailAddress => $emailAddressValid)
{
# print($emailAddress . " is " . is_email($emailAddresses) .", should be " . $emailAddressValid . "<BR/>");
if (is_email($emailAddress) != $emailAddressValid ) {
$resultString .= "$emailAddress should be " . $boolean[$emailAddressValid] . "<BR/>";
$nFoundWrong++;
}
}
if ($nFoundWrong > 0) {
print("<P>The following $nFoundWrong email addresses were evaluated wrong:<BR/>$resultString</P>");
return false;
} else {
print("<P>All email addresses evaluated correctly.</P>");
return true;
}
}
}
?>
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat