我正在尝试检测电子邮件的目的地是否是数据库中的某个人。问题是有相同的电子邮件,因此直接比较不会捕获所有情况。一些示例:foobar@gmail.com
== foo.bar@gmail.com
== foobar+123@gmail.com
。是否存在定义这些模式的地方?
答案 0 :(得分:0)
您所引用的内容是“Subaddressing Samantics”
就大多数人而言:不,没有任何你不了解的额外规则。这是因为两者都是“。”和“+/-”是特定于域的标识符。
Gmail选择使用与没有点相同的点来识别电子邮件,例如JohnSmith@gmail.com == John.Smith@gmail.com,因为这对冒名顶替者来说太容易了。因此,我们保证所有Gmail地址都有相同或不带点,但此保证不会扩展到其他所有域。
答案 1 :(得分:-3)
如果你想询问是否有一种通用的方法只从名称中决定这一点,那么没有。即使你使用模式查找类似的电子邮件地址,你怎么知道他们属于同一个人?也许foobar123真的与foobar不同?
现在,如果您的数据库表具有链接到人的电子邮件地址,您可以使用查询来查找他们所链接的人并进行比较。
我能想到的另一件事就是如果你可以对电子邮件地址进行IP查找,但是存在很多问题。