.net - System.Net.Mail.MailAddress'解析器接受的格式是什么?

标签 .net validation email

我正在开发一个使用 System.Net.Mail.MailAddress 的应用程序和发送电子邮件的 friend 。该解析器是否实现了完整的 RFC5322或子集或什么? MSDN 在这个主题上并不是很热情。

任何提示表示赞赏。

最佳答案

我写了一个小片段来测试这个功能:

foreach (int i in Enumerable.Range(32,128-32))
{
    char c = (char)i;
    string addr = String.Format("par.t1{0}pa.r{0}t2@example.com", c);
    try
    {
        var mailAddr = new MailAddress(addr);
    }
    catch
    {
        Console.WriteLine("MailAddress failed '{0}' ({1}): {2}", c, i, addr);
    }
}

在 3.5 SP1 上的结果如下:

邮件地址失败 ' ' (32): par.t1 pa.r t2@example.com
邮件地址失败 '"' (34): par.t1"pa.r"t2@example.com
邮件地址失败 '(' (40): par.t1(pa.r(t2@example.com)
邮件地址失败 ')' (41): par.t1)pa.r)t2@example.com
邮件地址失败 ',' (44): par.t1,pa.r,t2@example.com
邮件地址失败 ':' (58): par.t1:pa.r:t2@example.com
邮件地址失败 ';' (59): par.t1;pa.r;t2@example.com
邮件地址失败 '<' (60): par.t1邮件地址失败 '>' (62):par.t1>pa.r>t2@example.com
邮件地址失败 '@' (64):par.t1@pa.r@t2@example.com
邮件地址失败 '[' (91): par.t1[pa.r[t2@example.com
邮件地址失败 '\' (92): par.t1\pa.r\t2@example.com
邮件地址失败 ']' (93): par.t1]pa.r]t2@example.com
邮件地址失败 '⌂' (127): par.t1⌂pa.r⌂t2@example.com

它似乎也不支持“引用字符串”本地部分,例如 "blah"@example.com .

我不认为验证器在变得无法使用之前可以接受任何更少的东西。

关于.net - System.Net.Mail.MailAddress'解析器接受的格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528090/

相关文章:

python - python SMTP 未收到邮件

c# - 在 BookControl 中显示 PDF。将 PDF 转换为 XAML?

.net - 转义中间字符串百分号,正则表达式是最好的选择吗?

javascript - 在文本框中输入任何内容之前会出现验证错误消息

c# - 如何使用 C# 中的代码更改网络设置(IP 地址、DNS、WINS、主机名)

Java - 全名的正则表达式

html - 为什么这条白线出现在我的 HTML 电子邮件签名上?

jquery - 如何使用 jQuery 将文本转换为电子邮件链接

ruby-on-rails - 使用 :if 验证

performance - 为什么这个 Java 代码有这个年龄验证日期比较?