2012-04-26 28 views
6

我正在使用MailAddress創建傳真電子郵件。 我們正在使用名爲SatisFAXtion v 8.6的系統。 要爲傳真提供封面,我可以將模板位置添加到mail.TO地址。MailAddress:郵件標題中找到無效字符

的格式如下:

12125551234^template=cp\\[email protected] 

當編譯它工作正常,但我需要兩個反斜槓,所以我增加了兩個作爲轉義字符。

當我運行程序我得到一個異常:

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

Wikipedia

特殊字符的限制是他們必須只0​​使用包含引號之間時,和他們的3( 空間,反斜線\和引號「 (ASCII:32,92,34))還必須在前面加上反斜槓\(例如「\\\」「」) 。

因此,我不認爲您的電子郵件地址是有效的,因爲反斜槓不包含在引號之間。

如果你可以改變地址爲12125551234^template="cp\\"[email protected]這樣的東西,我認爲它會好的。

+0

所以這已經修復了這個問題,但只是不得不把詳細地址在引號中: – 2012-04-26 15:14:32

+0

'「\」12125551234^template = cp \\\\ FAXReportCover.rtf \「」+「@ fax.ourcompanymail.com」' – 2012-04-26 15:15:28

3

幾年前,我發現了一個解決類似問題的解決方法。問題出在MailAddress構造函數的DisplayName參數中。

也許它會幫助你太:

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

+0

請注意,您的解決方法是針對displayName參數,而不是地址參數。 – xpereta 2013-12-02 09:18:51

+0

@xpereta:你不必downvote **兩個**答案。 – 2013-12-02 13:44:26

+0

我已刪除downvotes並改進了答案。雖然他們沒有解決問題的確切問題,但他們可能對未來的用戶有用。 – xpereta 2013-12-03 10:22:11

0

我收到此錯誤時,如果被修改爲「網絡」 ---然後錯誤得到了解決。 (我的理解是 - 櫃面指定pickupdirectory選項,頭-encoding UTF-8的(Base64)是給錯誤)

希望它可以幫助