c# - 我如何在 WebBrowser、RichTextBox 或免费组件中显示 MailMessage 到 C#

标签 c# imap mailmessage

我用过 S22.imap 库。我有带有嵌入图像、链接等的 MailMessage。如果我使用 WebBrowser 并显示 MailMessage 正文,Web 浏览器组件仅显示文本。我看了很多资料,很多人说,把所有的linkedSource都保存在本地驱动器中,然后构建html文件。还有别的办法吗?更好的方法。

using (ImapClient Client = new ImapClient(imapSettings.Imap_server, imapSettings.Port, imapSettings.Email, imapSettings.Password,AuthMethod.Login, true))
      {
          IEnumerable<uint> uids = Client.Search(SearchCondition.Unseen());
          IEnumerable<MailMessage> messages = Client.GetMessages(uids);
          LoadNewMessagesToDataBase(messages);
      }

List<MailMessage> messageList= messages.ToList();

webbrowser.DocumentText = messageList[i].body;

最佳答案

我找到了简单的方法:

var dataStream = messageList[i].AlternateViews[0].ContentStream;
byte[] byteBuffer = new byte[dataStream.Length];
string altbody =  System.Text.Encoding.UTF8.GetString(byteBuffer, 0, dataStream.Read(byteBuffer, 0, byteBuffer.Length));
webbrowser.DocumentText = altbody;

关于c# - 我如何在 WebBrowser、RichTextBox 或免费组件中显示 MailMessage 到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22954349/

相关文章:

Python IMAP 搜索从或到指定的电子邮件地址

c# - 在 asp.net c# 环境中以上一页作为内容发送电子邮件

c# - ASP.NET MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding 默认值

c# - 发送到多个电子邮件地址但只显示一个 C#

c# - 在两个图像之间转换的最有效方法是什么(如 Mac 墙纸更改)

c# - 将更具体的泛型类型分配给不太具体的类型

php - 无法连接 :Can't open mailbox {imap. gmail.com:993/imap/ssl/novalidate-cert}收件箱:无效的远程规范

java - 仅从 Exchange 获取新邮件,忽略 session 请求

c# - 添加 Xamarin 插件时出错

选中复选框时实现 foreach 循环的 C# 逻辑