MessageSummaryItems.PreviewText Пояснение - PullRequest
0 голосов
/ 10 мая 2018

Мы используем недавно добавленную функцию MessageSummaryItems.PreviewText.Спасибо!!

По вопросу: иногда PreviewText содержит ссылки HTML?Прочитав источник, я вижу это в ImapFolderFetch.cs

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

Итак, это говорит: использовать версию открытого текста, если она существует, затем использовать версию HTML?

Поэтому, если я вижу ссылки в окне предварительного просмотра, я могуПредположим, что текстовая версия недоступна?

Наша проблема с этим:

Если наше сообщение имеет только HTML-версию, мы могли бы удалить ссылки из сообщения в нашем коде, но есть только256 символов этого.Во многих случаях отображать нечего.

В соответствии с вашим TODO: было бы лучше использовать расширение CONVERT, но, насколько я могу судить, оно не поддерживается Gmail?

Откат будет:

Если бы мы могли установить длительность предварительного просмотра для HTML и открытого текста по отдельности, то мы могли бы сказать: если у вас есть только HTML-версия, дайте мне 1K ее, и я уберу ссылки на клиенте.

Мысли?

1 Ответ

0 голосов
/ 11 мая 2018

Очень немногие серверы IMAP поддерживают расширение CONVERT, что является основной причиной, по которой я его не реализовал.

Функция PreviewText - это попытка добавить вспомогательную функцию для извлечения первых 256 байтов каждого тела сообщения.в пакетных запросах, чтобы минимизировать задержку, но независимо от того, что я делаю, это не гарантированно будет полезным (так как может быть тонна разметки, прежде чем любой реальный текст будет включен в HTML).

Если бы я былразделить текстовые и html-сообщения на 2 разных пакета, чтобы я мог запрашивать разные размеры для каждого, тогда это было бы менее эффективно и могло бы потребовать значительно больше времени для извлечения, поэтому я не уверен, стоит ли оно того на самом деле.Чем меньше я могу пакетировать за раз, тем менее полезной становится эта функция по сравнению с реализацией собственного цикла над списком сообщений и загрузкой указанного вами размера чанка.одно сообщение за раз.

Я бы предложил использовать функцию PreviewText, а для редких сообщений, для которых недостаточно 256 байт, выполнить folder.GetStream() для них.

...