gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:01:06 24 4
gpt4 key购买 nike

我想要一个函数来测试字符串是否像电子邮件地址一样格式化。

.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(input),如果抛出,则无效。如果您的输入有任何可能的解释为符合RFC 2822的电子邮件地址规范,它将对此进行解析。上面的正则表达式,甚至是MSDN文章中的正则表达式,都是错误的,因为它们没有考虑显示名称,带引号的本地部分,域的域文字值,本地部分的正确点原子规范,邮件地址可以放在尖括号中,用于显示名称的多个带引号的字符串值,转义字符,在显示名称中的unicode,注释以及最大有效邮件地址长度。我花了三周的时间为System.Net.Mail在.NET 4.0中重新编写了邮件地址解析器,并相信我,这比仅仅提出一些正则表达式要困难得多,因为存在很多边缘情况。 .NET 4.0 beta 2中的MailAddress类将具有此改进的功能。

还有一件事,您唯一可以验证的是邮件地址的格式。如果不向该地址发送电子邮件并查看服务器是否接受该电子邮件地址,则无法验证该电子邮件地址实际上对于接收电子邮件有效。这是不可能的,尽管您可以向邮件服务器提供SMTP命令以尝试对其进行验证,但很多时候这些命令将被禁用或返回不正确的结果,因为这是垃圾邮件发送者查找电子邮件地址的常用方法。

关于.net - 如何使用.NET Framework验证电子邮件地址格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com