2009/4/28 Jan G.B. <[email protected]>
> 2009/4/28 Jay Blanchard <[email protected]>:
> > Our company wants to do e-mail verification and does not want to use the
> > requests / response method (clicking a link in the e-mail to verify the
> > address), which as we all know is the only way you can be truly sure. I
> > found this;
> >
> > http://verify-email.org/
> >
> > Which seems to be the next best deal and it is written in PHP. Has
> > anyone used this? Is anyone doing something similar? How do you handle
> > errors? I know that some domains will not accept these requests.
> >
>
> They don't even detect greylisting!
>
>
>
> > I think that this method would really work for us and cut down on the
> > bogus e-mail addresses we're receiving though. Thoughts?
> >
>
> There's just one way: let the users confirm with an activation link.
> People often insert their addresses wrong without noticing it..
> example: [email protected] instead of [email protected],
> aol.<DE|UK|NL|FR|etc> instead of aol.com and so on.
>
> So ... nothing like "insert your mail twice" or "re-check your address
> please" actually works. ;)
>
> On the other hand: Douple-opt-In is quite like an industry standard -
> why wouldn't your firm use it? It makes customers happy as well as
> "not-customers" because people can't use their addressess to sign-up.
> I hate getting other peoples email.
>
>
> byebye
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
/**
Validate an email address.
Provide email address (raw input)
Returns true if the email address has the email
address format and the domain exists.
Modified: 06/06/2003
**/
function validEmail($email)
{
$isValid = true;
$atIndex = strrpos($email, "@");
if (is_bool($atIndex) && !$atIndex)
{
$isValid = false;
}
else
{
$domain = substr($email, $atIndex+1);
$local = substr($email, 0, $atIndex);
$localLen = strlen($local);
$domainLen = strlen($domain);
if ($localLen < 1 || $localLen > 64)
{
// local part length exceeded
$isValid = false;
}
else if ($domainLen < 1 || $domainLen > 255)
{
// domain part length exceeded
$isValid = false;
}
else if ($local[0] == '.' || $local[$localLen-1] == '.')
{
// local part starts or ends with '.'
$isValid = false;
}
else if (preg_match('/\\.\\./', $local))
{
// local part has two consecutive dots
$isValid = false;
}
else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
{
// character not valid in domain part
$isValid = false;
}
else if (preg_match('/\\.\\./', $domain))
{
// domain part has two consecutive dots
$isValid = false;
}
else if
(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
str_replace("\\\\","",$local)))
{
// character not valid in local part unless
// local part is quoted
if (!preg_match('/^"(\\\\"|[^"])+"$/',
str_replace("\\\\","",$local)))
{
$isValid = false;
}
}
if ($isValid && !(checkdnsrr($domain,"MX") ||
checkdnsrr($domain,"A")))
{
// domain not found in DNS
$isValid = false;
}
}
return $isValid;
}
--
Luke Slater
http://dinosaur-os.com/
:O)