Re: E-Mail Verification - Yes, I know....

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/4/28 Jan G.B. <ro0ot.w00t@xxxxxxxxxxxxxx>

> 2009/4/28 Jay Blanchard <jblanchard@xxxxxxxxxx>:
> > 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: www.myalias@xxxxxxxxxxxx instead of myalias@xxxxxxxxxxxx,
> 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)

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux