如何使用.NET Framework验证电子邮件地址格式?

前端之家收集整理的这篇文章主要介绍了如何使用.NET Framework验证电子邮件地址格式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要一个函数来测试一个字符串是一个格式化的电子邮件地址。

什么是内置的.NET框架来做这个?

这工作:

Function IsValidEmailFormat(ByVal s As String) As Boolean
    Try
        Dim a As New System.Net.Mail.MailAddress(s)
    Catch
        Return False
    End Try
    Return True
End Function

但是,有更优雅的方式吗?

不要打扰自己的验证。 .NET 4.0通过 MailAddress类大大提高了验证。只需使用MailAddress address = new MailAddress(输入),如果它抛出,它是无效的。如果有任何可能的解释您的输入作为符合RFC 2822的电子邮件地址规范,它将解析它。上面的正则表达式,即使是MSDN文章,都是错误的,因为它们没有考虑显示名称,引用的本地部分,域的字面值,本地部分的正确的点原子规范,电子邮件地址可以在尖括号中,显示名称的多个带引号的字符串值,转义字符,显示名称中的unicode,注释和最大有效邮件地址长度。我花了三个星期在.NET 4.0 for System.Net.Mail中重写了邮件地址解析器,并相信我,比使用一些正则表达式更难,因为有很多边缘情况。 .NET 4.0 beta 2中的MailAddress类将具有此改进的功能

还有一件事,你唯一可以验证的是邮件地址的格式。您无法验证电子邮件地址实际上是否有效的接收电子邮件,而不发送电子邮件到该地址,并查看服务器是否接受它的交付。这是不可能的,虽然有SMTP命令,您可以给邮件服务器尝试验证它,很多次,这些将被禁用或将返回不正确的结果,因为这是垃圾邮件发件人查找电子邮件地址的常见方式。

猜你在找的VB相关文章