【问题标题】:how to display an html email in asp.net如何在asp.net中显示html电子邮件
【发布时间】:2013-11-18 07:32:08
【问题描述】:

我正在尝试从 System.Net.Mail.AlternatView 在剃刀视图中显示 html 电子邮件。我似乎无法在互联网上找到任何说明如何执行此操作的内容。一切都与创建电子邮件有关,而不是显示它们。

有人可以帮忙吗?

我一直在尝试这样的事情:

 @{var stream = Model.AlternateViews[0].ContentStream;
  using (StreamReader reader = new StreamReader(stream))
  {
      Html.Raw(reader.ReadToEnd());
      Html.Display(reader.ReadToEnd());
  }

我不确定如何提取 html 内容或如何显示它

谢谢

【问题讨论】:

  • 尝试使用System.Net.WebUtility.HtmlDecode("<htmlcontent>...")

标签: c# asp.net-mvc razor html-email


【解决方案1】:

基于 om 这个Retrieving AlternateView's of email 答案你可以只具有将流作为字符串获取的功能

   public string ExtractAlternateView()
    {
        var message = new System.Net.Mail.MailMessage();
        message.Body = "This is the TEXT version";

        //Add textBody as an AlternateView
        message.AlternateViews.Add(
            System.Net.Mail.AlternateView.CreateAlternateViewFromString(
                "This is the HTML version",
                new System.Net.Mime.ContentType("text/html")
            )
        );

        var dataStream = Model.AlternateViews[0].ContentStream;
        byte[] byteBuffer = new byte[dataStream.Length];
        return System.Text.Encoding.ASCII.GetString(byteBuffer, 0, dataStream.Read(byteBuffer, 0, byteBuffer.Length));
    }

然后

ViewBag.Message= string ExtractAlternateView();

 @Html.Raw(ViewBag.Message);

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2014-07-15
    • 2020-08-20
    • 1970-01-01
    • 2012-03-11
    • 2014-07-10
    • 2015-06-04
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多