[15]Email Automation with Studio-UiPath ARD Certification Training

前言:【【非原创】】UiPath Advanced RPA Developer Certification Training的课程资料机翻版。
课程链接:Link

1 关于课程

在本课程中,我们将探索如何通过使用 UiPath Studio 和与电子邮件相关的活动来快速、可靠地处理电子邮件。

保持收件箱打开并准备好查看可以自动化的任务,以节省宝贵的时间。

您将在本课程中学到什么
在本课程结束时,您应该能够:

  1. 在 UiPath Studio 中安装专用电子邮件活动。
  2. 根据正在使用的电子邮件客户端和服务器检索电子邮件消息。
  3. 通过过滤和下载附件自动与电子邮件交互。
  4. 使用不同的“发送电子邮件”活动。
  5. 使用消息模板发送电子邮件。

2 Email Automation Overview介绍

2.1 介绍

今天,有很多沟通方式。但是当谈到关键流程时,电子邮件仍然是大多数公司的首选。

让我们以一些全天生成不同警报消息的服务器为例。为了加快速度,我们可能希望自动化分发警报的过程,以便合适的人及时收到正确的警报消息。一种方法是根据不同的标准(如主题、日期、正文内容或发件人)过滤电子邮件。

Studio 通过 UiPath 邮件活动包提供电子邮件自动化功能。让我们了解更多信息并将其投入使用。

UiPath 邮件活动包

此活动包旨在促进任何与邮件相关的任务的自动化,涵盖各种协议,例如 IMAP、POP3 或 SMTP。 UiPath 还提供专门用于处理 Outlook 和 Exchange 的活动。

为了更好地理解包中邮件活动的可用性,让我们从高层次看一下我们如何能够自动分发由多个服务器生成的电子邮件警报。

2.2 The “catch and dispatch” process “抓和派”的过程

考虑生成不同类型警报的三台服务器,这些警报被发送到单个邮箱帐户。
从那里,1 级技术人员必须确认和过滤电子邮件。
之后,他们会按照特定程序升级或自行处理警报。
由于这是一项具有稳定流程和明确指导方针的重复性任务,因此它是自动化的理想选择。让我们快速浏览一下该过程的主要步骤。
在这里插入图片描述

  • Retrieve Emails 获取邮件
    我们可以使用不同的活动从指定的服务器检索电子邮件。
    有些不需要额外的设置(例如获取 Outlook 邮件),而另一些则需要(例如获取 IMAP 邮件)。
    检索到的消息(输出)存储为 MailMessage 对象的集合

  • Filters Emails 过滤邮件
    在 2020 版的邮件活动包中, Get Outlook Mail Messages是唯一包含内置过滤的活动。
    对于 Get POP3 Mail Message, Get IMAP Mail Message, Get Exchange Mail Messages, Get IBM Notes Mail Messages 等活动,我们可以使用 For Each 活动来过滤输出集合。访问过滤示例以了解更多信息。

  • Send Emails 发送邮件
    使用“发送邮件”活动,您可以创建自定义消息、添加附件、设置重要性、设置敏感度等。您还可以转发电子邮件。要使这项工作起作用,您必须指定输入(帐户或登录详细信息)和接收者。

Want to find out more?
About the Mail Activities Pack - UiPath Activities Guide
About App Integration - UiPath Activities Guide

3 Retrieving Emails 检索电子邮件

您是否曾经阅读过一个巨大的电子邮件列表,认为“必须有一种更有效的方法来做到这一点”?嗯,我们都知道这种感觉。使用 UiPath,您现在可以轻松检索需要立即关注、处理或转发给适当人员的电子邮件。

视频演示 - 使用 IMAP 检索电子邮件

使用’Get IMAP Mail Messages’活动检索电子邮件。
而且由于我们大多数人整天都在靠近我们的收件箱,因此获取有关自动化任务状态的电子邮件报告有时可能是保持其正常运行的必要条件。
从 RPA 的角度来看,与电子邮件交互的两种情况是:电子邮件作为我们流程的输入电子邮件作为输出

对于输入电子邮件,我们可以接收文本形式的数据,作为电子邮件主题或正文的一部分,或作为附件,例如 Excel 文件、pdf 或其他文件类型。至于作为输出的电子邮件,它最常用于向主管发送有关不同自动化项目或发生业务或应用程序异常时的状态更新。

让我们开始我们的演示吧!正如我们在新创建的项目中看到的,UiPath.Mail.Activities 包已经添加,因为它是新项目的默认设置。

Exchange 是与 UiPath 集成的 Microsoft 企业电子邮件解决方案,提供用于发送和接收消息、在文件夹之间移动电子邮件以及删除它们的活动。

IBM Notes 邮件活动,它使用运行自动化过程的机器上当前活动的 IBM Notes 帐户。

IMAP 或 Internet 消息访问协议,它仅用于接收消息,但提供了一些有用的功能来将消息标记为已读或在文件夹之间移动它们。

Outlook 活动也可用。它们略有不同,因为它们与桌面应用程序的 API 一起工作,因此操作已经有了上下文。
无需设置服务器、用户和其他技术细节。
这些活动旨在使用现有的 Outlook 帐户。
POP3:代表Post Office Protocol,它是一种用于阅读消息的旧协议。大多数电子邮件服务器都支持它。

SMTP 是Simple Mail Transfer Protocol的缩写,它是一种仅用于发送消息的基本协议。
最后,有两个通用电子邮件活动可用于在本地驱动器上保存电子邮件和电子邮件附件。
使用 Gmail,因此我们将使用“获取 IMAP 邮件”活动。
例如,在使用 Exchange 时可以找到相同的活动功能。在这种情况下,我们将使用“获取 Exchange 邮件消息”,
对于 IBM,我们将使用“获取 IBM Notes 邮件消息”,
对于 Outlook,“获取 Outlook 邮件”。

要遍历所有未读消息,我们需要一个 For Each 活动。
我们将参数类型设置为“System.Net.Mail.MailMessage”。

对于一些关键要点:

  • 电子邮件可以用作流程的输入或输出。
  • 电子邮件活动包含在 UiPath.Mail.Activities 包中。
  • 默认情况下,该包为 Exchange、IBM Notes、IMAP、Outlook、POP3 和 SMTP 提供特定活动。
  • 我们用于检索电子邮件的对象类型是 System.Net.Mail.MailMessage。
  • 在构建使用电子邮件的流程时,对于大多数活动组,可能还需要对电子邮件帐户进行一些配置。

Want to find out more?

About the Mail Activities Pack - UiPath Activities Guide
About App Integration - UiPath Activities Guide

4 Filtering Emails 过滤电子邮件

在 2020.10 版本的邮件活动包中,主要有两种过滤邮件的方式:

  • 通过使用控制流活动。
  • 通过使用’Get Outlook Mail Messages’ 活动。

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 提供了多种过滤选项。根据您使用的电子邮件服务器,选择最适合您需求的活动和选项。

视频演示 - 过滤 Outlook 电子邮件

了解如何使用“For Each”、“Get Outlook Mail Messages”活动及其过滤条件来过滤电子邮件。

在本视频中,我们将学习如何使用 UiPath Studio 自动获取 Outlook 邮件并按多个条件过滤它们!
在执行该过程之前,用户需要登录到 Outlook,但不需要打开应用程序。

请注意,如果我们在 Outlook 中配置了多个帐户,我们可以通过在“帐户”字段中输入其名称来指定要使用的帐户。在本例中,我们将使用“Citizen Developer”。

“OnlyUnreadMessages”属性将保持选中状态,因为我们只想获取这些消息。
为了获得消息的数量,我们使用表达式:“Message.Count.tostring”。

 Mail.Headers("日期") //获取邮件日期

在可用的过滤条件中,我们有: “Subject”, “SenderEmailAddress”, Or “ReceivedTime”,这是我们计划使用的选项。

由于我们对过滤在特定时间间隔内收到的电子邮件感兴趣,特别是在过去 24 小时内,我们可以使用这样的表达式。

"[ReceivedTime] > "+Now.AddDays(-1).ToString("MM/dd/yyyy hh:mm tt")+"" '筛选日期在24小时以内的邮件

UiPath 使用的 Outlook 过滤器依赖于底层的 Microsoft 组件。

要了解有关用于过滤的语法的更多信息,我们可以简单地搜索“Outlook Items Find filter”并参考 Microsoft 文档页面。

对于关键要点:

  • Outlook 活动可在 Studio 中快速配置,它们需要安装和配置桌面应用程序
  • “获取 Outlook 邮件”活动让我们可以根据“主题”、“发件人电子邮件地址”或“接收时间”等条件过滤邮件。

了解有关过滤电子邮件的更多信息的一个很好的资源是 Microsoft 文档页面。

Want to find out more?

About the Mail Activities Pack - UiPath Activities Guide
App Integration - UiPath Activities Guide

5 Sending Emails 发送电子邮件

UiPath Studio 集成了多个活动,可帮助您根据使用的服务器发送电子邮件。

System.Net.Mail.MailMessage”代表在 UiPath 中处理电子邮件时的主要数据类型。每当您需要获取或转发电子邮件消息时,您都将使用此数据类型。

使用 Studio 中的电子邮件活动之一发送电子邮件时,您可以添加主题、自定义正文、附件,甚至使用模板来完成所有这些。您还可以使用 Orchestrator 资产或 **‘Read Text File’**活动来访问模板。
视频演示 - 发送电子邮件

学习使用 'Send SMTP Mail Message’活动在 UiPath Studio 中发送电子邮件。

这是模板派上用场的地方。
让我们考虑一个用例,当在系统上检测到异常活动时,流程会发送电子邮件。
这是我们可以用于此场景的基本模板。请注意,它在时间戳应该所在的大括号之间包含数字 0。这是一个占位符索引。在我们的项目中,我们将模板加载到一个字符串变量中,我们将使用该变量作为 String.Format 方法的输入。占位符将被参数数组中的元素替换。
让我们添加一个“读取文本文件”活动并指定数据文件夹内的模板文件。
正如我们之前提到的,我们将把我们的输出保存到一个我们将立即创建并称为“EmailTemplate”的变量中。
让我们使用 String.Format 方法配置电子邮件的正文。我们将输入 EmailTemplate 变量作为输入,并提供参数数组参数来替换占位符。在我们的例子中,在索引 0 处,我们将使用 Now.ToString 打印当前日期。
String.Format(EmailTemplate,Now.ToString)

让我们把事情复杂一点,并在我们要发送的电子邮件中添加一个屏幕截图。为此,将添加一个“Take Screenshot”活动,并为其创建一个名为“Screenshot”的新变量。
接下来,我们需要将图像保存到驱动器。让我们添加一个“保存图像”活动。

我们将在图像字段中输入“屏幕截图”变量,然后输入我们要将文件保存到的路径。

现在我们有了保存屏幕截图的路径,让我们回到 Send Mail 活动并在 Attachments 属性中提供附件的路径。
一切看起来都不错,所以让我们运行我们的项目,看看会发生什么!

我们的工作流已成功执行,我们只需要从 Outlook 弹出窗口中确认。就在这里!

让我们检查一下 Outlook 收件箱。

这是电子邮件,这是附件。看起来一切都很顺利!

到此我们将结束这个演示!

快速回顾一下:

  • UiPath 邮件活动包提供了多种用于发送电子邮件的活动。在这个演示中,我们使用了发送 SMTP 邮件消息。
  • 我们可以将电子邮件模板读取为字符串变量,并在 Send Mail Message 活动中使用它们。
  • 要将屏幕截图附加到电子邮件中,我们需要使用 Take Screenshot 活动来获取屏幕截图并将其存储到变量中,然后使用 Save Image 活动将其存储到驱动器上的路径中,最后,我们需要提供路径作为发送 SMTP 邮件活动的附件集合中的值。

Want to find out more?
App Integration - UiPath Activities Guide

6 练习

Practice 1 - 整理电子邮件

创建一个项目,根据 Excel 中定义的“规则”,读取收件箱并通过将电子邮件移动到各个文件夹来对电子邮件进行排序,类似于下面的规则。

如果发件人地址包含“发件人”列中定义的字符串,则将邮件移至“文件夹”列中定义的电子邮件文件夹。

实践1解决方案

  • 根据您使用的邮件服务器/客户端,要设置的属性可能不同,但逻辑和活动是相似的。在本演练中使用 Get Outlook Mail Mail Messages 时,主要是指 Get XXX Mail Messages,其中 XXX 可以是 POP3、IMAP、Exchange、Outlook。

  • 我们首先拖动“获取 Outlook 邮件消息”活动。我们配置要读取的帐户(如果我们需要一个不是 Outlook 中默认帐户的帐户)、要读取的文件夹,并创建一个变量,其中将输出电子邮件。我们将此变量称为“电子邮件”。

  • 我们还使用 Read Range 活动从作为输入提供的电子邮件 rules.xlsx 文件中读取“规则”。我们将结果输出到一个 DataTable 中,我们将其称为 mailRules。

  • 请注意,我们在 Get Outlook Mail Message 的输出属性中创建的“emails”变量的类型为 List 。

  • 当我们尝试将规则应用于每封电子邮件时,我们通过使用 For Each 活动在此电子邮件列表上创建一个迭代。考虑到我们正在迭代的列表由 MailMessage 对象组成,迭代中的每个项目都属于 MailMessage 类型,我们需要明确指定这一点。

  • 我们单击 For Each 活动,然后在名为 TypeArgument 的属性中,从列表中的选项中选择 System.Net.MailMessage 值。

  • 如果此选项不在列表中,请单击“浏览类型”并在出现的对话窗口中搜索 System.Net.Mail.MailMessage。

  • 现在我们需要迭代每个规则,看看我们正在分析的当前邮件是否满足任何条件。这次我们有一个 DataTable 对象,因此我们将使用 For Each Row 活动遍历它。您唯一需要指定的是要迭代的对象,在我们的例子中是 mailRules。

  • 我们现在需要检查有关该主题的规则是否适用。由于我们可以访问自动创建的项目中的当前电子邮件(我们将其重命名为邮件)变量,并且该变量的类型为 MailMessage,因此我们可以访问所有特定的邮件属性。我们必须查看 Sender.Address 属性是否包含正在检查的当前规则中的“From”列。

  • 如果这是真的,我们使用移动 Outlook 邮件消息并将当前邮件移动到“文件夹”列的当前行中指定的文件夹。
    我们还需要为这个序列添加一个中断,以便不再验证其他规则,如果已经应用了一个并且邮件被移动到另一个文件夹。

Practice 2 - 发送电子邮件

您每天都会收到包含新员工详细信息的电子邮件。每个新员工都需要为他们生成一个唯一的 ID 号。既然这是一项需要花费您宝贵时间的重复性任务,为什么不自动化呢?

为此,请在 Studio 中启动一个新流程,从您的“收件箱”文件夹中获取主题为“ID 请求”的邮件,存储发件人的电子邮件地址,然后保存附件(Excel 文件)。接下来,您必须:

  • 读取 Excel 文件。
  • 从名字的前三个字母、姓氏的前三个字母和电话号码的后三个数字生成唯一 ID。
  • 将所有新 ID 添加到先前创建的 ID 列。
  • 将基于模板的 Outlook 电子邮件和附加的更新 Excel 文件发送回初始发件人。模板必须包含原始发件人的姓名、任务完成时间和您的姓名。

下载附件中的练习文件,并向您的收件箱发送一封新的电子邮件,其中包含主题“ID 请求”和附件。
实践2解决方案

  • 打开 Studio 并开始一个新进程。
  • 添加新的“序列”类型的活动以启动您的工作流程,并将“获取 Outlook 邮件消息”类型的活动拖入其中。
  • 现在,在“属性”窗格中,添加“收件箱”作为 MailFolder 的输入。选中“MarkAsRead”和“OnlyUnreadMessages”框。在“过滤器”表达式字段中,添加“subject]=‘IDs Request’”以仅在收件箱中搜索主题行为“IDs Request”的电子邮件。
  • 添加“For Each”类型的活动并在其中拖动一个新序列。
  • 添加“分配”类型的活动并将其重命名为“分配以存储发件人电子邮件地址”。在其中,按 CTRL+K 创建一个名为“SendersEmail”的新变量,并为其分配以下表达式:

SendersEmail = email.From.ToString

  • 接下来,拖动“保存附件”活动。在“文件夹路径”字段中输入“SavedAttachment\”,在“邮件消息”字段中输入“电子邮件”。在输出附件字段中,按 CTRL+K 创建一个名为“附件”的新变量(存储所有已保存的附件)。
    然后,在 Excel 文件中创建并填充 ID 列。为此,您必须添加一个“Excel 应用程序范围”活动(相应地重命名)。键入 ‘Attachments(0).ToString’ 作为文件的位置。

  • 接下来,拖动一个新的“序列”活动并将其命名为“处理 Excel”。在新序列中,拖动 Excel 的“写入单元格”活动并将其命名为“写入 ID 标题单元格”。在表达式值字段中添加“Sheet1”作为“工作表名称”、“E1”作为“范围”和“ID”。

  • 现在,添加“获取单元格颜色”活动并将其重命名为“获取电子邮件标题单元格颜色”。在“工作表名称”中键入“Sheet1”,在“单元格”值字段中键入“D1”。

  • 要设置 ID 标题范围颜色,请拖动“设置范围颜色”活动。在“颜色”值字段中,按 CTRL+K 创建一个新变量并将其命名为“HeaderColor”。在“范围”值字段中键入“E1”,在“SheetName”值字段中键入“Sheet1”。

  • 接下来,添加 Excel 的“读取列”活动并将其重命名为“读取列以获取数据行数”。在“单元格”值字段中输入“Sheet1”作为“工作表名称”和“A1”。

  • 添加另一个 Excel“写入单元格”活动以在整个新 ID 列中写入公式。键入“Sheet1”作为“工作表名称”,在“范围”值字段中添加“E2:E”+ DataColumn.Tostring.Length.ToString,以及“=CONCATENATE(LEFT(A2,3),LEFT(B2, 3),RIGHT(C2,3))”在“输入”值表达式字段中。

  • 要发送带有更新的 Excel 文件的电子邮件,请在“Excel 应用程序范围”之外添加一个新的“序列”活动,并将其重命名为“发送带有更新文件的电子邮件”。

  • 然后,拖动“阅读文本文件”活动,因为您将使用它来阅读电子邮件模板。

  • 接下来,下载您将在发送电子邮件时使用的电子邮件模板。

  • 在您​​的项目文件夹中,创建一个名为“Data”的新文件夹。确保将您刚刚下载的“EmailTemplate.txt”文件复制并粘贴到其中。

  • 在“文件名”字段中,输入“Data\EmailTemplate.txt”以指向模板文件位置。最后,在“输出”属性的“内容”字段中,按 CTRL+K 创建一个名为“EmailTemplate”的新变量(这将基本上存储模板的内容)。

  • 现在我们可以发送电子邮件了。为此,让我们添加一个“发送 Outlook 邮件”活动。按如下方式填充以下字段:

  • 致:发件人电子邮件
    主题:“更新的 ID 列表”
    正文:String.Format(EmailTemplate, email.From.DisplayName, Now.ToString, email.To.Item(0).Di​​splayName)

  • 然后,单击“附加文件”并在值字段中键入“Attachments(0).ToString”。

  • 干得好!您现在可以运行该项目。

7 Learning Resources

关于邮件活动包
应用程序集成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值