邮件地址:邮件头中发现了无效字符

6
我将使用MailAddress来创建传真邮件。 我们正在使用名为SatisFAXtion v 8.6的系统。 如果要提供传真封面,我可以将模板位置添加到mail.TO地址中。
格式如下:
12125551234^template=cp\\FAXReportCover.rtf@fax.ourcompanymail.com

编译时没问题,但我需要两个反斜杠,所以我添加了两个作为转义字符。

运行程序时出现异常:

Message: An invalid character was found in the mail header:
StackTrace: at System.Net.Mail.MailAddressParser.ParseLocalPart(String data, Int32& index, Boolean expectAngleBracket, Boolean expectMultipleAddresses)
   at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index)
   at System.Net.Mail.MailAddressParser.ParseMultipleAddresses(String data)
   at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
   at System.Net.Mail.MailAddressCollection.Add(String addresses)
   at System.Net.Mail.Message..ctor(String from, String to)
   at System.Net.Mail.MailMessage..ctor(String from, String to)

有没有办法在MailAddress对象中插入电子邮件地址的反斜杠?
3个回答

4

来自维基百科

特殊字符的限制是它们只能在引号中使用,并且其中3个字符(空格、反斜杠\和引号"(ASCII:32、92、34))还必须在前面加上反斜杠\(例如"\ \\" ")。

因此,我认为您的电子邮件地址无效,因为反斜杠不包含在引号之间。

如果您可以将地址更改为类似于12125551234^template="cp\\"FAXReportCover.rtf@fax.ourcompanymail.com,那么它应该是可以的。


所以这样修复了问题,但是必须将完整地址放在引号中: - Boguslaw Buczek
"\"12125551234^template=cp\\\\FAXReportCover.rtf\"" + "@fax.ourcompanymail.com" - Boguslaw Buczek

3

注意,你的解决方法是针对displayName参数而不是address参数的。 - xpereta
我已经移除了踩票并改进了答案。尽管它们没有解决问题的确切问题,但对未来的用户可能有用。 - xpereta
为了使答案更完整,请提供解决方案,而不仅仅是链接到其他网站。 - xpereta
@xpereta:这不仅仅是一个网站,它是我的博客。无论如何,感谢您的见解和纠正。 - Wiktor Zychla
我知道这是你的博客,你很在意它,但对于未来的用户来说,它是一个外部网站。如果可能的话,这里的答案应该包含解决问题的解释。 - xpereta
@xpereta: 真的。如果这是一个新问题,我甚至不会发表评论。然而,这个问题已经存在一年半了,原帖作者没有给出任何反馈,说实话,我也忘记了它,就像我提供的其他答案一样,都没有得到反馈。 - Wiktor Zychla

0

当我将其修改为“network”时,我收到了这个错误 --- 然后错误得到了解决。(我的理解是 - 在指定pickupdirectory选项的情况下,标题 - 编码utf-8 (base64)会出错)

希望它有所帮助


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