🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🐬个人主页:会敲键盘的肘子
🐰系列专栏:UiPath
🦀专栏简介:UiPath在传统的RPA(Robotic process automation)的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。
🌈写在前面:
电子邮件是最早的一种数字通信方式,时至今日,许多业务流程仍由简单的电子邮件触发,我们总是习惯性地查看收件箱。如果我们可以把很多任务可以实现自动化,那么可以节省我们宝贵的时间。在本博文中,我们将探讨如何通过使用UiPath Studio和电子邮件相关活动来快速可靠地处理电子邮件。你在读一大堆邮件的时候,是不是想过“一定有更有效的方法来做这件事”?使用UiPath,您现在可以轻松检索需要立即关注的电子邮件,处理或转发给适当的人。
👉本文关键字:RPA、UiPath、Low-code、No-code、Email Automation、电子邮件自动化、OutLook、.Net
1️⃣ 背景
♈ 什么是RPA
RPA(Robotic process automation) 代表机器人过程自动化。
它是一种软件程序,可在与计算机应用程序交互时模仿人类行为并实现重复的、基于规则的流程的自动化。
♉ 什么是UiPath
UiPath 是一种机器人流程自动化工具,用于自动化枯燥和重复的任务。它由罗马尼亚企业家 Daniel Dines 和 Marius Trica 于 2005 年创立。它还消除了自动化无聊任务的人工干预,并为所有活动提供了拖放功能,它是最简单的 RPA 工具。
♊ 为什么使用UiPath
UiPath在传统的RPA的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
♋ 为什么要用电子邮件自动化
电子邮件是最早的一种数字通信方式,时至今日,许多业务流程仍由简单的电子邮件触发,我们总是习惯性地查看收件箱。在关键流程方面,电子邮件仍然是大多数公司的首选。
我们以一些服务器为例,它们在一天中生成不同的警报消息。为了加快速度,我们可能希望自动地去分发警报的过程,以便正确的人及时获得正确的警报消息。一种方法是根据主题、日期、正文内容或发件人等不同标准过滤电子邮件,然后将它们分别发给对应的人。UiPath就帮我们实现了这些功能,并涵盖了各种协议,如IMAP、POP3或SMTP。UiPath还提供活动专门用于Outlook和Exchange的。
♌ 案例
为了更好地理解软件包中邮件活动的可用性,让我们从更高的层次来看如何自动分发由多个服务器生成的电子邮件警报。
考虑有三台服务器生成不同类型的警报,这些警报将发送到单个邮箱帐户。此时,1级技术人员必须确认并过滤电子邮件。之后,他们会按照特定程序升级或自行处理警报,该过程的主要步骤如下图所示。
可以看出,这是一项重复性的任务,具有稳定的流程和明确的指导方针。因此它非常适合被自动化取代。我们接下来将探讨如何通过使用UiPath Studio和电子邮件相关activity来快速可靠地处理电子邮件,以节约我们的宝贵的时间。
2️⃣ 概述
♈ 环境
-
UiPath Studio Community 2022.4.3
-
Windows 10
-
.Net
♉ 摘要
电子邮件是最早的一种数字通信方式,时至今日,许多业务流程仍由简单的电子邮件触发,我们总是习惯性地查看收件箱。如果我们可以把很多任务可以实现自动化,那么可以节省我们宝贵的时间。在本博文中,我们将探讨如何通过使用UiPath Studio和电子邮件相关活动来快速可靠地处理电子邮件。你在读一大堆邮件的时候,是不是想过“一定有更有效的方法来做这件事”?使用UiPath,您现在可以轻松检索需要立即关注的电子邮件,处理或转发给适当的人。
♊ 您将学到的内容
- 使用专门的email activities;
- 字符接收消息电子邮件并;
- 自动筛选并下载电子邮件的附件;
- 自动发送电子邮件消息;
- 自动使用消息模板。
3️⃣ 电子邮件自动化(Email Automation)
♉ 过滤邮件
⭐ 背景知识
Get Outlook Mail Messages
提供的筛选选项包括:
Filter
用作要检索的消息的筛选器的字符串。接受JET查询或DASL查询。
假设您使用Outlook,只需要检索主题行开头有“关键”的电子邮件。
在这种情况下,您还可以使用SQL筛选,您的表达式如下所示:
"@SQL=""urn:schemas:httpmail:subject"" like 'Critical%'"
FilterByMessageIds
仅返回与指定邮件ID匹配的邮件。如果设置,则忽略“过滤器”选项。
OnlyUnreadMessages
指定是否仅检索未读邮件。默认情况下,此复选框处于选中状态。
Top
根据OrderByDate参数,从最新消息或最旧消息开始检索的消息数。
除了Get Outlook Mail Messages
活动提供的筛选选项之外,您还可以使用For Each
活动来指示基于指定条件要采取的操作。
UiPath Studio提供了多种过滤选项。根据您使用的电子邮件服务器,选择最适合您需要的活动和选项。
接下来,我们学习如何使用For Each
、Get Outlook Mail Messages
活动及其筛选条件筛选电子邮件。
⭐使用For Each和Get Outlook Mail Messages过滤电子邮件
我们创建一个新流程,并将其重命名为“Filtering_Outlook”。
因为我们想显示执行时间之间的差异,所以让我们使用不同的序列进行前后过滤。让我们首先在检索消息并重命名之后添加一个序列进行筛选。
接下来,我们将添加一个Assign
活动。此活动将把执行开始时的当前日期和时间分配到变量中。创建一个变量并用当前日期和时间对其进行初始化。将变量类型更改为DateTime。
我们将添加Get Outlook Mail Messages
活动。
请注意,如果我们在Outlook中配置了多个帐户,我们可以通过在“帐户”字段中输入其名称来指定要使用的帐户。在本例中,我们将使用“rpadeveloper@uipath.com”.
OnlyUnreadMessages
属性将保持选中状态,因为我们只想获取这些消息。
让我们将它们存储在一个名为“EmailsList”的新变量中。
接下来,让我们检查集合中检索到的所有电子邮件的接收日期。为了检查这一点,我们将遍历输出集合。让我们添加一个For Each
活动,并将Type Argument设置为System.Net.Mail.MailMessage
。
接下来,让我们添加一个If
活动。我们将使用此活动检查邮件是否至少是当天前一天的邮件。为了检查这一点,我们可以通过构建表达式来创建条件。
我们首先从电子邮件消息的标题转换日期,然后将其与当前日期的前一天进行比较。接下来,我们要记录该电子邮件消息的日期。
为此,我们将使用日志消息活动。从下拉菜单中将日志级别设置为“信息”。现在,写下我们要记录的消息。仅支持字符串和字符串变量。所以,我们将其转换为String。
下一步是检查操作完成的时间。为此,我们将再次使用日志消息活动。从下拉菜单中将日志级别设置为“信息”。
在消息对象中,我们将创建一个表达式,显示操作所用的时间。
现在,让我们在检索消息之前添加另一个要筛选的序列
首先,我们将保存当前时间戳。为此,我们可以简单地复制先前的Assign活动。要访问变量“开始时间戳”,请从变量面板更改变量的范围。
现在,添加“获取Outlook邮件”活动。我们将通过在“帐户”字段中输入其名称来指定要使用的帐户。这里,让我们使用“rpadeveloper@uipath.com”. 要使用前面创建的用于存储检索到的邮件的变量“Emails List”,我们将从变量面板中更改变量的范围。在输出消息属性中写入变量的名称。
幸运的是,Get Outlook Mail Message
活动提供了其他筛选条件。让我们打开过滤器属性的表达式编辑器。在这里,我们将设置一个过滤器,只检索自昨天以来收到的电子邮件。
让我们重复使用For Each
活动和Log Message
活动。更改表达式编辑器中的日志消息,以反映此活动是在检索电子邮件之前。
让我们运行这个项目,看看会发生什么。
让我们打开输出面板。我们可以看到,在检索消息之后进行过滤需要7秒钟,而在检索消息之前进行过滤只需要3秒钟。
⭐使用IMAP活动过滤电子邮件的区别
我们将创建一个新流程,并将其重命名为“Filtering_IMAP”。
由于我们想显示执行时间之间的差异,我们将使用不同的序列进行前后过滤。让我们首先在检索消息并重命名之后添加一个序列进行筛选。
让我们添加一个Get Username and Password
活动。此活动将用户名和密码安全地存储在Windows凭据管理器
中,或从Orchestrator检索凭据资产,然后将其保存以供以后在自动化中使用。
让我们从Saved Credentials
下拉菜单中选择Gmail Credentials
。我们将创建一个变量Gmail Credentials
来获取先前保存的Gmail凭证。
现在,让我们添加一个Assign
活动。此活动将把执行开始时的当前日期和时间分配到变量中。我们将创建一个变量,并使用当前日期和时间对其进行初始化。然后将变量类型更改为“日期时间”。
现在,让我们添加一个Get IMAP Mail Messages
活动。该活动从指定的服务器检索IMAP电子邮件。输出是System.Net.Mail.MailMessage对象的集合。
请注意Gmail帐户中所需的配置。要了解更多信息,请确保查看本课中提供的可用文档。
让我们设置连接参数。我们将添加端口号“993”。添加服务器“imap.gmail.com”。添加用户名和密码,我们将使用前面创建的变量。
为了获取消息,我们将在输出字段中创建一个新变量,让我们将其命名为“Emails List”。如前所述,此变量是System.Net.Mail的集合。MailMessage对象。
既然我们有兴趣检索所有电子邮件,那么让我们取消选中“仅未读邮件”。让我们从默认类型“日期时间”更改“开始时间戳”变量。
接下来,我们将检查收集到的所有电子邮件的接收日期。为了检查这一点,我们将遍历输出集合。让我们添加一个For Each
活动,并将Type Argument
设置为System.Net.Mail.MailMessage
。
现在,让我们添加一个If
活动来检查主题行的内容。为了检查这一点,我们将通过构建一个表达式来创建一个条件,该表达式将首先转换电子邮件消息头中的日期,然后将其与当前日期的前一天进行比较。
接下来,我们要记录该电子邮件消息的日期。为此,让我们使用日志消息活动并将日志级别设置为“信息”。现在,让我们添加要记录的消息。请注意,只支持字符串和字符串变量。所以,我们将其转换为String。
下一步是检查操作完成的时间。为此,我们将再次使用“日志消息”活动,并将“日志级别”设置为“信息”。现在,在消息中,我们将创建一个表达式,显示操作所用的时间。
让我们在检索消息之前添加另一个要筛选的序列。
现在,我们将复制上面的所有活动。按CTRL键并单击活动,一起选择所有活动。单击复制并粘贴创建的新序列“检索消息前过滤”。
要访问新序列中的变量,让我们从变量面板更改变量的范围。
幸运的是,Get IMAP Mail Messages
活动提供了额外的筛选条件。让我们打开过滤器属性的表达式编辑器。在这里,我们将在从服务器获取消息之前对其进行过滤。
在表达式编辑器中,请记住以与谷歌使用的格式相同的格式编写日期。让我们更改表达式编辑器中的日志消息,在检索电子邮件之前以显示此活动。
执行开始时,会出现一个弹出窗口。单击“确定”以使用我们存储在Windows凭据管理器
中的GMAIL凭据。
它将完成第一个循环,然后再次出现一个弹出窗口。单击“确定”开始第二个序列。
让我们打开输出面板。我们可以看到,过滤检索后的消息需要9.5秒,过滤检索前的消息只需要2秒。
4️⃣ 总结
- Outlook活动可以在Studio中快速配置,它们需要安装和配置桌面应用程序。
- “获取Outlook邮件”活动允许我们根据“主题”、“发件人电子邮件地址”或“接收时间”等条件筛选邮件。
- 电子邮件可以用作流程的输入或输出。
- 默认情况下,该包为Exchange、IBM Notes、IMAP、Outlook、POP3和SMTP提供特定活动。
- 我们用于检索电子邮件的对象类型是System.Net.Mail.MailMessage。
- 在构建使用电子邮件的流程时,对于大多数活动组,可能需要对电子邮件帐户进行一些配置。
- “获取IMAP邮件”活动允许我们根据不同的标准筛选邮件。.
- 了解有关筛选电子邮件的更多信息的一个很好的资源是Microsoft文档页面。
下一篇博文,博主将介绍使用UiPath自动发送邮件,同样实现邮件自动化。
5️⃣ 参考资料
About the Mail Activities Pack
App Integration
⭐写在结尾:
文章中出现的任何错误请大家批评指出,一定及时修改。
希望写在这里的小伙伴能给个三连支持!
转载:https://blog.csdn.net/baidu_33146219/article/details/127606190