HTML 内容不会在电子邮件中呈现

HTML content is not rendered in an Email

本文关键字:电子邮件 HTML      更新时间:2023-09-26

我想打开(不发送)一封包含HTML格式内容的电子邮件。我正在使用javascript的mailto,并且我已经创建了一个包含c#.net中的html的字符串,但是邮件显示标签而不是渲染HTML。我想我缺少内容类型:text/html,但我该怎么说?或者有没有更正确的方法来打开带有内容的电子邮件?

下面是获取 html 页面的 c#.net 代码

  [HttpPost]
    public ActionResult SetMailContent(int entreatyID)
    {
         Entreaties entreaty = db.Entreaties.Where(e => e.ID == entreatyID).FirstOrDefault();
         if (entreaty == null)
         {
             return new HttpStatusCodeResult(HttpStatusCode.NotFound, "File Not Found");
         }
         StringWriter stringWriter = new StringWriter();
         using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
         {
             writer.RenderBeginTag(HtmlTextWriterTag.H1);
             writer.Write(entreaty.OpenDate.ToString("dd/MM/yyyy"));
             writer.RenderEndTag();
         }
         string msg = stringWriter.ToString();
         return Json(new { message = msg});
    }

和JavaScript代码:

window.location = "mailto:mail@gmail.com?body=" + SetMailContent(EntreatyID) + "&subject= " + EntreatyID;

谢谢你的帮助。

您需要将 HTML 内容添加到 DOM,而不仅仅是将其显示为字符串。你可以通过jQuery做到这一点,例如:

$("#containerId").append($("your mail content"));