2011-12-03 101 views
0

我有一個C#應用程序,它可以獲取To,主題,消息等郵件信息。然後它調用wcf服務發送一封郵件(實習生使用smtpclient.send())。問題是,當郵件正文包含超鏈接時,它不會被重新規範化爲鏈接。它以純文本形式發送。郵件中的超鏈接被識別爲純文本,而不是鏈接

這有2個方案的,

  1. http://localhost/我%20pages /test.aspx - 不被識別爲紐帶
  2. http://localhost/mypages /test.aspx - 公認的鏈接

但這兩個郵件屬性都是純文本。我正在使用HttpUtility.UrlEncode()來編碼鏈接。

如何解決這個問題?

Thanx提前

+0

當你說「localhost/my%20pages/test.aspx」沒有被識別爲鏈接時,你的意思是隻有第一部分被郵件客戶端識別,或者你真的意識到它們都不被識別? –

回答

1

如果要確保網址的鏈接發送電子郵件作爲HTML - 你需要將其格式化爲HTML。

純文本不會神奇創建鏈接給你,雖然一些電子郵件客戶端會看到一個http前綴,並自動從它創建一個鏈接,來源是否是文本還是不中(Outlook爲例)。

0

正如您所提到的那樣,純文本郵件中的「普通」鏈接可以被識別,但包含%20的鏈接(即空白字符)不會被識別。一種解決方案是確保首先避免URL中的%20個空格,因爲(儘管完全合法),它並不是一個URL中非常「友好」的字符。如果你願意的話,你可以使用htaccess將一個特殊的更友好的角色(比如三重短劃線---)映射到空白處。