2016-07-07 18 views
0

我試圖在從我們的系統發出的MailMessage中嵌入一些JavaScript標記。原因是腳本的JSON內容將被第三方讀取並解析。如何防止加號被編碼爲MailMessage正文中的ASCII碼

script標籤的格式應該是這樣的:

<script type="application/json+trustpilot"> 

,這是它的外觀,當我檢查的MAILMESSAGE身體​​屬性。然而,當它被傳遞到郵件客戶端,它已被格式化,像這樣:

<script type="application/json&#43;trustpilot"> 

有很多意見解釋如何編碼的HTML特殊字符,但沒有說明如何阻止發生這在上述特殊情況下。任何人都可以幫忙,我已經花了整整一天的時間來解決這個問題!

謝謝

回答

0

我無法重現您遇到的問題。我在C#中創建了一個最小化的控制檯應用程序來嘗試重現它。我在電子郵件正文中僅發送了一個非常小的「結構化代碼片斷」的電子郵件。

namespace TestingMailMessage 
{ 
    using System.Net; 
    using System.Net.Mail; 

    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      const string FromEmail = "<some-email-address>"; 
      const string Password = "<your-password>"; 

      var mailMessage = new MailMessage(
       FromEmail, 
       "[email protected]", 
       "This is a test trigger", 
       "<script type=\"application/json+trustpilot\">{\"recipientEmail\": \"[email protected]\"}</script>"); 

      var smtpClient = new SmtpClient 
       { 
        Host = "smtp.gmail.com", 
        Port = 587, 
        EnableSsl = true, 
        DeliveryMethod = SmtpDeliveryMethod.Network, 
        UseDefaultCredentials = false, 
        Credentials = new NetworkCredential(FromEmail, Password) 
       }; 

      smtpClient.Send(mailMessage); 
     } 
    } 
} 

當收到電子郵件,它看起來是正確的 - 和「結構化數據段」被正確解析。