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 对象的电子邮件地址中插入反斜杠?

4

3 回答 3

4

来自维基百科

特殊字符的限制是它们只能在包含在引号之间时使用,并且其中的 3 个(空格、反斜杠 \ 和引号 " (ASCII: 32, 92, 34))也必须以反斜杠开头\(例如“\ \\”“)。

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

如果您可以将地址更改为12125551234^template="cp\\"FAXReportCover.rtf@fax.ourcompanymail.com我认为可以的地址。

于 2012-04-26T13:54:58.310 回答
3

几年前,我找到了解决类似问题的方法。问题出在 MailAddress 的构造函数中的 DisplayName 参数中。

也许它也会帮助你:

http://netpl.blogspot.com/2008/09/smtpclient-exception-invalid-character.html

于 2012-04-26T13:55:51.367 回答
0

如果将其修改为“网络”,我会收到此错误 --- 然后错误得到解决。(我的理解是 - 如果指定pickingdirectory 选项,标头-encoding utf-8 (base64) 给出错误)

希望能帮助到你

于 2014-08-20T13:51:46.827 回答