在C#中验证电子邮件地址是否存在

7

关于这篇文章中的电子邮件验证问题,

使用C#,您将如何:

  1. 发出VRFY命令
  2. 发出RCPT命令

如果您查看Sean Edwards的回答,我认为那应该算是如何做到的,尽管我同意其他人在这里的观点,即这并不是最好的做法,因为90%的电子邮件服务器可能会向您提供虚假信息。 - Kjartan Þór Kjartansson
6个回答

36

我认为您会发现,在许多情况下,这些函数会故意欺骗您以打败垃圾邮件发送者。如果有一种确认电子邮件真实性的方法,而不是要求用户点击验证(或取消订阅...)链接,那么垃圾邮件发送者将非常高兴。

需要明确的是,验证电子邮件地址的最佳方法是向用户发送包含链接的电子邮件,并等待他们点击链接以验证他们收到了该电子邮件。除了企业/内部网络环境之外的任何其他技术都应该失败和/或欺骗以打败垃圾邮件发送者。


5
谢谢建议,但问题不是“如何验证电子邮件的最佳方式”。 - Kenneth J
是的,没错。Spence的确是一个答案。 - Mau
1
通常在面对这样的需求时,更有用的是对为什么需要这样做进行根本原因分析。事实证明,客户已经看到了一些具有“受保护”的电子邮件地址的人,这些地址要求首次发送者在邮件实际被送达之前点击链接。与其采用传统的电子邮件地址验证(电子邮件中的链接),不如简单地加入一些额外的文本,要求提供电子邮件的人事先将特定的电子邮件ID(例如:verification@example.net)添加到白名单中。 - Kinjal Dixit

5

这里有一个很好的项目(链接),其中包含关于如何实现此功能的代码片段。但正如Spence所提到的,它们可能不总是能够正确地工作。


我也会推荐这个。你应该看看,Ken。 - Hinek

5

5

2

通常情况下。

  • VRFY:算了吧。认真的 ;) 没有服务器会回答 - 没有理智的服务器。被垃圾邮件发送者滥用太多了。

    • 对于其他部分:通过TCP连接到服务器,“就这样做”(即编程SMTP握手,然后继续进行)。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接