【问题标题】:Retrieve HTML from Web.Config in Code-Behind在 Code-Behind 中从 Web.Config 中检索 HTML
【发布时间】:2015-02-20 02:56:28
【问题描述】:

Web.Config:

<appSettings>
    <add key="html1" value="This is &lt;br /&gt; HTML email"/>
</appSettings>

我正在尝试生成 HTML 格式的电子邮件。在将数据放入 Web.Config 之前,我的文本和 HTML 电子邮件格式均正确无误。

在代码隐藏中:

StringBuilder emailMessageString = new StringBuilder();
emailMessageString.Append(WebConfigurationManager.AppSettings["html1"].ToString());

HTML 电子邮件中的输出:

这是
HTML 电子邮件

HTML 电子邮件中的预期输出:

这是

HTML 电子邮件

更新 - 2015 年 2 月 19 日

看起来我为生成 HTML 电子邮件而编写的代码无法正常工作,并且之前已在此问题中发布了代码(在我自己的答案中)。有人可以发现我做错了什么,因为看起来只有文本电子邮件有效:

Correct Syntax for Generating HTML Email using AlternateView

【问题讨论】:

  • 我有一种感觉,因为您正在以 XML 格式存储 HTML。在输出 HTML 之前是否需要取消 XML 值?
  • 不确定 Jeremy 的意思 - 我尝试了 </>和 </> 与 HtmlEncode() 和 HtmlDecode() 调用结合使用,无法正常播放。我的理解是它们都是配置部分中的字符串...
  • 出于好奇,能否输出使用这两种方法生成的原始html?
  • 会不会是您发送纯文本电子邮件而不是 HTML?
  • 我认为你们正在做一些事情 - 将很快更新问题并展示我如何尝试在电子邮件中生成 html。

标签: c# asp.net web-config html-email


【解决方案1】:

您无需再次解码。这应该解决它 -

var body = new StringBuilder();
body.Append(WebConfigurationManager.AppSettings["html1"]);

另外,请确保将 IsBodyHtml 设置为 true。

var message = new MailMessage();
message.IsBodyHtml = true;

【讨论】:

  • 用你的建议更新问题 Win;我认为问题可能出在我在电子邮件中生成 HTML 的方式上 - 当我可以缩小范围时会很快再次更新,谢谢 :)
  • HTML 不起作用的原因是因为我愚蠢地试图在文本框中显示输出:/
【解决方案2】:

你好兄弟你可以使用Server.HtmlDecode(string s)

见下面代码

StringBuilder emailMessageString = new StringBuilder();
emailMessageString.Append(Server.HtmlDecode(WebConfigurationManager.AppSettings["html1"].ToString()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多