C# 如何消除重复的电子邮件地址

C# 如何消除重复的电子邮件地址,c#,email,email-validation,C#,Email,Email Validation,有没有一种方法可以可靠地从用户输入的电子邮件地址中获取唯一的电子邮件地址?问题是像GMail这样的服务允许你在地址中加一个句号,而其他服务则不是这样 GMail: chad.moran@gmail.com c..hadmoran@gmail.com c.h.a.d.m.o.r.a.n@gmail.com 所有这些都是一样的 其他服务: chad.moran@---.com c..hadmoran@---.com 这些都是独一无二的 除了有专门针对GMail的特殊逻辑之外,还有更好的方法吗?每

有没有一种方法可以可靠地从用户输入的电子邮件地址中获取唯一的电子邮件地址?问题是像GMail这样的服务允许你在地址中加一个句号,而其他服务则不是这样

GMail:

chad.moran@gmail.com
c..hadmoran@gmail.com
c.h.a.d.m.o.r.a.n@gmail.com
所有这些都是一样的

其他服务:

chad.moran@---.com
c..hadmoran@---.com
这些都是独一无二的


除了有专门针对GMail的特殊逻辑之外,还有更好的方法吗?

每个电子邮件服务器都会有不同的规则来确定哪些是允许的,哪些是不允许的。您指定不希望为每个客户机都有特定的逻辑,因此必须有特定的逻辑

您可以去掉所有的点,但其他客户可能会将带点的电子邮件地址视为不同的


我强烈建议不要尝试这样做,因为这将是一场维护噩梦,特别是当一家电子邮件服务公司一夜之间改变其策略时。此外,这样一个系统的好处很小,用户只会被激励注册一个新的电子邮件地址,这比实际的电子邮件地址稍微困难一些。

这是不可能的,因为每个单独的电子邮件服务可能会选择解释电子邮件地址的“本地部分”(在
@
之前的部分)这是自己的方式<代码>乍得。moran@gmail.com和
chadmoran@gmail.com
可以路由到同一邮箱,但不同的提供商可以将它们路由到不同的邮箱

发件人:

电子邮件地址的本地部分的解释取决于邮件服务器中实施的约定和策略。例如,区分大小写可能会区分仅在本地部分字符大小写上不同的邮箱,尽管这并不常见


我有几个电子邮件帐户正在转发到我的gmail帐户。运行自己的域的人可能会收到到该域的所有电子邮件。因此,基本上没有,没有任何方法可以确保给定的电子邮件地址不会与您已有的邮箱位于同一邮箱中。如果您的用户故意给您两个不同的电子邮件地址,您是否应该尊重他们的意愿并发送到两个不同的地址?对我来说,这听起来像是某种机制,以确保“每个用户一个帐户”,这最终也会因为许多其他原因而有缺陷。你到底为什么认为你需要这个?如果我给你一个修改过的电子邮件地址,那正是我希望你使用的地址。@Chad,Chad。moran@gmail.com和c.h.a.d.m.o.r.a。n@gmail.com是唯一的电子邮件地址。根据你的GMail设置,它们可能在同一个“文件夹”中,也可能不在同一个“文件夹”中,但这只是巧合。然后你就有了拥有全套电子邮件地址的人(abuse@chadmoran.cx, info@chadmoran.cx等等)。因此,无法通过算法确定每个用户的唯一性。而且“专为GMail而设的逻辑”也毫无意义,因为GMail可能是你最不担心的东西(如:通吃等等)还有,@Cody说了些什么。你在这里做了错误的事情。我不是在讨论什么应该是独一无二的,什么不应该是独一无二的。我不是想把用户的数据翻译成我想要的,我是在存储和使用他们给我的地址。我想你指的是“邮件服务器”,你说的是“邮件客户端”。我想是这样的,但我想我会问,因为似乎没有一个类似的问题在当时很流行。