簡體   English   中英

如何防止在MailMessage正文中將加號編碼為ASCII代碼

[英]How can I prevent the plus sign from being encoded to ASCII code in body of MailMessage

我正在嘗試將一些javascript標記嵌入從系統發出的MailMessage中。 原因是腳本的JSON內容將由第三方讀取並解析。

腳本標簽應采用以下格式:

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

這就是我檢查MailMessage的body屬性時的外觀。 但是,當將其傳遞到郵件客戶端時,其格式如下:

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

關於如何在html中編碼特殊字符,有很多建議可以解釋,但是在上述特殊情況下,沒有什么建議可以阻止這種情況的發生。 誰能幫忙,我花了一整天的時間來解決這個問題!

謝謝

我無法重現您遇到的問題。 我用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,
                "xxxxxxxxxx@invite.trustpilot.com",
                "This is a test trigger",
                "<script type=\"application/json+trustpilot\">{\"recipientEmail\": \"jane.doe@trustpilot.com\"}</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);
        }
    }
}

收到電子郵件后,它看起來正確-並且正確解析了“結構化數據片段”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM