【问题标题】:Read an HTML/Text file and Send it as a HTML Formated Email in WPF/C#读取 HTML/文本文件并将其作为 HTML 格式的电子邮件在 WPF/C# 中发送
【发布时间】:2014-08-18 23:57:06
【问题描述】:

我有一个 WPF 应用程序,当单击按钮时会发送 HTML 格式的电子邮件。整个电子邮件是 HTML 格式的,它确实有效。

但是,我想知道是否有一种方法可以读取 html 文件并将其发送出去,而不是将整个消息写在后面的代码中...保持所有 HTML 格式完好无损。

我尝试过这样的事情:

string MessageTosend = File.ReadAllText("path to txt/html file");

但这只是发送了一封只有文本的电子邮件(没有样式,没有 html...只有文件中的纯文本)。

然后我想,我可能必须转换所有内容:

string MessageTosend = Convert.ToString(File.ReadAllText("path to txt/html file"));

但这和以前做的一样。

有没有办法做到这一点?还是我必须坚持拥有

string MessageTosend = @"<html> ... lots of html stuff ... </html>";

对于每个发送电子邮件的按钮?

注意:我尝试读取的 .txt.html 文件的内容已使用上述字符串的相同内容进行了测试(再次,按预期工作),并且没有双引号(示例:width=""100""width="100")

【问题讨论】:

  • 您是否检查了收到的电子邮件的来源,看它是纯文本还是 HTML?此外,请显示您用于发送电子邮件的代码。你确定msg.BodyFormat = MailFormat.Html吗?
  • @Mendhak 我有message.IsBodyHtml = true;。在尝试通过读取文件来发送电子邮件之前,我将所有 HTML 写在一个字符串中(如最后一行所示)。我试图读取的.txt/.html 文件的内容与之前字符串中的内容相同。
  • 这张照片肯定少了点什么。字符串是字符串,因此从文件加载它时必须有所不同。尝试同时执行两种解决方案,并比较两个字符串以确保它们相等。 (StringComparer.CompareOrdinal)
  • @TroelsLarsen 我比较了两者,原始解决方案与读取的 txt/html 文件不同(即使文件内容完全相同)。如果我从每个解决方案中删除 html 标记并进行比较,一切都很好并且消息发送。 html 格式根本没有得到承认。我正在努力让它得到承认。

标签: c# html wpf email


【解决方案1】:

尝试将编码添加到您的文件读取:

string MessageTosend = File.ReadAllText("path to txt/html file", Encoding.UTF8);

尝试读取仅包含

(int)MessageTosend[0] // < should be 60 (3C in UTF-8)

找出有问题的角色是什么,我们或许可以提供帮助。如果我读取文件,我看不到这个问题。

【讨论】:

  • 谢谢!添加 ,Encoding.UTF8 确保 html 格式的呈现完全符合预期。只需确保文件为.html。 :)
猜你喜欢
  • 2018-05-06
  • 1970-01-01
  • 2017-06-28
  • 2018-11-21
  • 2020-04-18
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
相关资源
最近更新 更多