.Mht проблема - пустая страница - PullRequest
0 голосов
/ 23 сентября 2019

* Контекст: читать таблицу из электронного письма.Для этого используйте этот метод (сохраните электронную почту как .mht, затем извлеките данные с помощью операции очистки веб-данных)

Я использовал этот метод много раз и все еще работаю.Но недавно я начал новый процесс, и когда я попробовал этот метод, некоторые письма выглядят как «Пустая страница»

Есть идеи?xD

Единственное, что я заметил, это то, что у рабочих писем есть этот код в нижнем колонтитуле, а у других его нет:

Рабочая почта

Нет рабочей почты

1 Ответ

0 голосов
/ 25 сентября 2019

К сожалению, вы не можете полагаться на электронные письма, которые всегда следуют стандартам (см. https://tools.ietf.org/html/rfc1521 для более подробной информации).В идеальном мире вы должны столкнуться с сообщениями с multipart/alternative, по сути, с двумя разделами:

  1. text/html с форматированным (html) сообщением вместе с таблицей в вашем случае,
  2. text/plain, содержащий простой текст, позволяющий любому читателю интерпретировать эту электронную почту (даже без поддержки html - подумайте об отображении электронной почты в командной строке / терминале).

Только потому, что существуют стандартыне означает, что люди будут следовать за ними.Вы увидите сообщения без второй части, неверные типы контента и многое другое.

Кажется, что браузеры полагаются на первую часть - text/html.Если эта часть отсутствует, может вообще ничего не отображаться (обратите внимание, что результаты могут отличаться в разных браузерах, а разные типы контента могут давать разные результаты - я проверял это с помощью multipart/mixed на Chromium).

Для продвижения вперед с помощью UiPath доступны следующие параметры:

  • Откройте файл MHT в другом приложении, например, в Mozilla Thunderbird (вы можете сначала переименовать их в eml).Используйте Desktop Automation для переименования и открытия файла, затем извлеките данные по своему усмотрению.
  • Используйте действие Чтение текстового файла в качестве резервной копии на тот случай, если ваш браузер отобразит пустую страницу.Возможно, вам понадобится использовать регулярные выражения для получения нужного раздела (текстовый / простой), но я бы порекомендовал использовать такую ​​среду, как MimeKit (доступную в виде пакета NuGet, поэтому ее интеграция в UiPath должна быть простой).

В любом случае вам потребуется проанализировать текстовое представление таблицы, потенциально превратив ее в DataTable объект, который включает в себя:

  • Определение начала и конца таблицы,
  • Разделение строк (например, при обнаружении символа NewLine),
  • Разделение ячеек (символы табуляции или символы-разделители).

Если вы точно не знаете, какие форматы ожидать, это может быть проблематично.

...