加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 23:53:16 所属栏目:大数据 来源:网络整理
导读:我想要一个函数来测试一个字符串是一个格式化的电子邮件地址。 什么是内置的.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
我想要一个函数来测试一个字符串是一个格式化的电子邮件地址。

什么是内置的.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命令,您可以给邮件服务器尝试验证它,很多次,这些将被禁用或将返回不正确的结果,因为这是垃圾邮件发件人查找电子邮件地址的常见方式。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读