Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 避免使用同一电子邮件创建多个帐户_Email_Gmail - Fatal编程技术网

Email 避免使用同一电子邮件创建多个帐户

Email 避免使用同一电子邮件创建多个帐户,email,gmail,Email,Gmail,我在一个网站上工作,在这个网站上,用户可以根据注册邀请链接(推荐)的用户数量获得奖品 Gmail允许他们的用户使用一封电子邮件的多种变体。有三种主要方法可以扩大你可以从一个Gmail帐户获得的可用谷歌电子邮件地址的数量: 使用@googlemail.com域 在电子邮件名称中使用“”点“或句点 在姓名末尾使用加号“+”,并添加额外字符 因此: myname@gmail.com myname@googlemail.com 我的。name@gmail.com 我的。name@googlemail.

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

Gmail允许他们的用户使用一封电子邮件的多种变体。有三种主要方法可以扩大你可以从一个Gmail帐户获得的可用谷歌电子邮件地址的数量:

  • 使用@googlemail.com
  • 在电子邮件名称中使用“”点“或句点
  • 在姓名末尾使用加号“+”,并添加额外字符
  • 因此:

    • myname@gmail.com
    • myname@googlemail.com
    • 我的。name@gmail.com
    • 我的。name@googlemail.com
    • 我的安娜。me@gmail.com
    • 我的安娜。me@googlemail.com
    • 我的名字+abcde@gmail.com
    • 我的名字+123abc@gmail.com
    • 我的名字+abcdefg78@gmail.com
    • 我的名字+abcdefg78@googlemail.com
    都一样

    我不希望用户通过一封电子邮件创建多个帐户来获得奖品。我怎样才能避免这种情况


    谢谢。

    我的方法是将已经注册的电子邮件存储在数据库表中。在注册过程中有一个验证步骤,用于检查该表中的现有电子邮件地址。如果表中存在用户提交的电子邮件,则验证失败,并向用户显示一条消息,说明他们已注册

    为了避免人们对系统进行游戏,在将无关字符存储到数据库表中之前,请使用regex去掉这些字符

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


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

    根据您对谷歌允许的地址的了解,自己解析每个用户名,并且只计算为1?在我看来,您可以将“.”替换为“.”,以及右边的所有内容,包括“+”。然后搜索具有该名称的现有用户。今晚晚些时候,如果你还没有得到答案,我可以在TSql中发布一个例子。如果你的逻辑中有一个错误,为了恢复的目的,如果你要在存储之前清理地址,我可能会建议存储原始输入。