.Mht 问题 - 空白页
.Mht issue - Blank Page
*上下文:阅读正文电子邮件中的 table。为此,请使用此方法(将电子邮件另存为 .mht,然后使用网络数据抓取提取数据 activity)
这个方法我用了很多次,现在还在用。但是,最近我开始了一个新过程,当我尝试这种方法时,一些邮件显示为“空白页”
有什么想法吗? xD
我唯一发现的是工作邮件的页脚中有此代码,而其他邮件则没有:
Working Mail
No Working Mail
遗憾的是,您不能依赖始终遵循标准的电子邮件(有关详细信息,请参阅 https://www.rfc-editor.org/rfc/rfc1521)。在理想情况下,您应该会遇到带有 multipart/alternative
的消息,本质上是给您两个部分:
text/html
带有格式化的 (html) 消息以及 table 在您的情况下,
text/plain
包含纯文本,允许任何 reader 解释该电子邮件(即使没有 html 支持——考虑在您的命令 prompt/terminal 中显示电子邮件)。
仅仅因为有标准并不意味着人们会遵循它们。您将看到没有第二部分的消息、不正确的内容类型等等。
浏览器似乎依赖于第一部分 -- text/html
。如果该部分不存在,则可能根本不会显示任何内容(请注意,结果可能因浏览器而异,并且不同的内容类型可能会产生不同的结果——我在 Chromium 上使用 multipart/mixed
对此进行了测试)。
与 UiPath 一起前进,有以下选项:
- 在不同的应用程序中打开 MHT 文件,例如 Mozilla Thunderbird(您可能需要先将它们重命名为
eml
)。使用 Desktop Automation 重命名并打开文件,然后根据需要提取数据。
- 使用 Read Text File activity as a backup in case your browser displays an empty page. You might need to use regular expressions to get the desired section (text/plain), but I'd recommend using a framework such as MimeKit(作为 NuGet 包提供,因此将其集成到 UiPath 中应该很容易)。
在任何情况下,您都需要解析 table 的纯文本表示,可能会将其转换为 DataTable
对象,其中包括:
- 正在检测 table、
的开始和结束
- 拆分行(例如遇到换行符时),
- 拆分单元格(制表符或分隔符)。
除非您确切知道预期的格式,否则这可能具有挑战性。
*上下文:阅读正文电子邮件中的 table。为此,请使用此方法(将电子邮件另存为 .mht,然后使用网络数据抓取提取数据 activity)
这个方法我用了很多次,现在还在用。但是,最近我开始了一个新过程,当我尝试这种方法时,一些邮件显示为“空白页”
有什么想法吗? xD
我唯一发现的是工作邮件的页脚中有此代码,而其他邮件则没有:
Working Mail
No Working Mail
遗憾的是,您不能依赖始终遵循标准的电子邮件(有关详细信息,请参阅 https://www.rfc-editor.org/rfc/rfc1521)。在理想情况下,您应该会遇到带有 multipart/alternative
的消息,本质上是给您两个部分:
text/html
带有格式化的 (html) 消息以及 table 在您的情况下,text/plain
包含纯文本,允许任何 reader 解释该电子邮件(即使没有 html 支持——考虑在您的命令 prompt/terminal 中显示电子邮件)。
仅仅因为有标准并不意味着人们会遵循它们。您将看到没有第二部分的消息、不正确的内容类型等等。
浏览器似乎依赖于第一部分 -- text/html
。如果该部分不存在,则可能根本不会显示任何内容(请注意,结果可能因浏览器而异,并且不同的内容类型可能会产生不同的结果——我在 Chromium 上使用 multipart/mixed
对此进行了测试)。
与 UiPath 一起前进,有以下选项:
- 在不同的应用程序中打开 MHT 文件,例如 Mozilla Thunderbird(您可能需要先将它们重命名为
eml
)。使用 Desktop Automation 重命名并打开文件,然后根据需要提取数据。 - 使用 Read Text File activity as a backup in case your browser displays an empty page. You might need to use regular expressions to get the desired section (text/plain), but I'd recommend using a framework such as MimeKit(作为 NuGet 包提供,因此将其集成到 UiPath 中应该很容易)。
在任何情况下,您都需要解析 table 的纯文本表示,可能会将其转换为 DataTable
对象,其中包括:
- 正在检测 table、 的开始和结束
- 拆分行(例如遇到换行符时),
- 拆分单元格(制表符或分隔符)。
除非您确切知道预期的格式,否则这可能具有挑战性。