使用Gmail注册时验证用户电子邮件地址

时间:2016-09-01 作者:Malisa

我最近才发现,使用gmail帐户时,你可以在@之前和名称之后添加任何内容,但仍然只能使用一个电子邮件地址。实例myusername(at)gmail dot commyusername+anythingelse(at)gmail dot Com会将来自两个地址的电子邮件发送到一个gmail帐户。

不幸的是,当使用WP函数“email\\u exists()”检查电子邮件“myusername+anythingelse”是否存在时,WP我认为正确地说它不存在

因此,我需要验证主gmail帐户是否尚未注册,如果尚未注册,请让用户使用扩展的电子邮件地址注册。

任何人都可以提供一些帮助,以检查它是否是gmail帐户,然后如果有必要,去掉+后的部分,因此我检查主帐户电子邮件是否注册给用户。

这是我目前验证电子邮件地址的方式:

$validemail = is_email($email_to_check);
    if ($validemail):
        $exists = email_exists($email_to_check);
        if ($exists):
          Move on and verify
我需要这方面的帮助:

        elseif:
       is it a gmail account?
          if so, is it using a pseudonym +
             if so, split this , join the myusername and gmail dot com
                then recheck using email_exists()
                   if now it exists as true
                     return with warning, this email account is registered
                       else register email to user

1 个回复
最合适的回答,由SO网友:Malisa 整理而成

嗯,在寻求帮助之前应该更加努力:)

最终很简单(对或错),它起作用了:

    $domain_array = array(\'googlemail.com\',\'gmail.com\');
    $validemail = is_email($email_to_check);
    $exists_text = \'\';
    if ($validemail):
        $exists = email_exists($email_to_check);
        list($user, $domain) = explode(\'@\', $email_to_check);
        if (!$exists):
            if (strpos($user, \'+\')) {
                list($username_email, $crap) = explode(\'+\', $user);
                $exists = email_exists($username_email . \'@\' . $domain);
                $exists_text = __(\'User account exists with this email address\', \'pw_texts\');
                $email_to_check = strtolower($username_email . \'@\' . $domain);// Gmail only recognizes lowercase
            }

        endif;
        if ($exists):
           carry on as before