PHP – Gmail地址规范化

来自Google Gmail的电子邮件地址可以通过多种方式转换为外观不同的电子邮件地址,同时仍使用相同的帐户。Gmail用户可以执行以下操作以拥有多个电子邮件地址:

  • 使用加号地址:gmail+test@gmail.com实际上是gmail@gmail.com

  • 将主机更改为 googlemail.com; gmail@googlemail.com是gmail@gmail.com

  • 在名称中添加其他点:g.mail@gmail.com仍为gmail@gmail.com

要查看哪些Gmail电子邮件地址属于同一帐户,请运行它们 gmail_address() 并验证是否有任何结果

功能gmail_address($mail){
  $mail_part = explode('@',strtolower($mail));
  如果($mail_part [1]!=='gmail.com'&& $mail_part [1]!=='googlemail.com'){
    返回$mail;
  }
  $plus_position = strpos($mail_part [0],'+');
  如果($plus_position!== false){
    $mail_part [0] = substr($mail_part [0],0,$plus_position);
  }
  return str_replace('。','',$mail_part [0])。'@ gmail.com';
}

用法示例:

回声gmail_address('gmail@googlemail.com'); // gmail@gmail.com
echo gmail_address('gm.Bil@gmail.com'); // gmail@gmail.com
echo gmail_address('gmail+test@gmail.com'); // gmail@gmail.com

其他电子邮件地址将原封不动地返回。