MessageSummaryItems.PreviewText 澄清

MessageSummaryItems.PreviewText Clarification

我们正在使用新添加的 MessageSummaryItems.PreviewText 功能。谢谢!!

问题是:有时 PreviewText 包含 HTML 链接?通过阅读源代码,我在 ImapFolderFetch.cs

中看到了这一点

var body = message.TextBody ?? message.HtmlBody;

所以这就是说:使用明文版本,如果存在,则使用HTML版本?

因此,如果我在预览中看到链接,我可以假设没有可用的纯文本版本吗?

我们的问题是:

如果我们的消息只有 HTML 版本,我们可以在代码中删除消息中的链接,但它只有 256 个字符。在许多情况下,将没有任何内容可显示。

根据您的 TODO:使用 CONVERT 扩展是更好的方法,但据我所知,Gmail 不支持它?

回退是:

如果我们可以分别为 HTML 和 Plaintext 设置预览长度,那么我们可以说,如果你只有 HTML 版本给我 1K,我会去掉客户端上的链接。

想法?

很少有 IMAP 服务器支持 CONVERT 扩展,这是我没有实现它的主要原因。

PreviewText 功能试图添加一个方便的功能来获取批处理请求中每个消息正文的前 256 个字节,以最大限度地减少延迟,但无论我做什么,都不能保证有用(因为在 HTML).

中包含任何真实文本之前可能会有大量标记

如果我要将文本和 html 消息分成 2 个不同的批次,以便我可以为每个批次请求不同的大小,那么效率会降低并且可能需要更长的时间来获取,所以我不确定这是否真的值得。我一次能够批处理的越少,与在消息列表上实现自己的循环并下载自己指定的块大小相比,该功能的用处就越小。一次一条消息。

我的建议是使用 PreviewText 功能,对于 256 字节不够的罕见消息,对其执行 folder.GetStream()