避免多个帐户使用相同的电子邮

时间:2018-01-14 04:02:12

标签: email gmail

我正在一个网站上工作,用户可以根据注册其邀请链接(推介)的用户数量获得奖品。

Gmail允许其用户使用一封电子邮件的多种变体形式。有三种主要方法可以扩展您可以从一个Gmail帐户中使用的可用Google电子邮件地址的数量:

  1. 使用 @ googlemail.com 域名。
  2. 使用电子邮件名称中的" dot" 或句点。
  3. 在姓名末尾使用加号" +" 并添加额外字符。
  4. 所以:

    • myname@gmail.com
    • myname@googlemail.com
    • my.name@gmail.com
    • my.name@googlemail.com
    • my.na.me@gmail.com
    • my.na.me@googlemail.com
    • myname+abcde@gmail.com
    • myname+123abc@gmail.com
    • my.name+abcdefg78@gmail.com
    • my.name+abcdefg78@googlemail.com

    都是一样的。

    我不希望用户使用一封电子邮件创建多个帐户以获得奖品。我怎么能避免这个?

    感谢。

1 个答案:

答案 0 :(得分:1)

我的方法是 - 将已注册的电子邮件存储在数据库表中。在注册期间进行验证步骤,检查该表是否存在现有电子邮件地址。如果表中存在用户提交的电子邮件,则验证失败并向用户显示他们已注册的消息。

为避免人们在系统中游戏,请使用正则表达式删除无关的字符,然后再将其存储到数据库表中。

天真的正则表达式实现可能看起来像(\.|\+[A-z0-9_-]+|oogle)(对于.NET)。这将删除所有句号,加号后的字符,并修复gmail / googlemail问题。

虽然它并不完美(例如,它会破坏boogle@gmail.com),但您可以根据自己的需要和实际的后端语言进行调整。