作者简介:博主是一位.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♉ 什么是UiPath♊ 为什么使用UiPath♋ 为什么要用电子邮件自动化♌ 案例

2️⃣ 概述♈ 环境♉ 摘要

3️⃣ 电子邮件自动化(Email Automation)♉ 发送邮件⭐ 背景知识⭐Send SMTP Mail Message⭐ 按预设好的模板发送电子邮件⭐ Sending a Calendar Invite with Outlook Integration

4️⃣ 总结5️⃣ 参考资料

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,您现在可以轻松检索需要立即关注的电子邮件,处理或转发给适当的人。

3️⃣ 电子邮件自动化(Email Automation)

♉ 发送邮件

⭐ 背景知识

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

System.Net.Mail.MailMessage表示在UiPath中处理电子邮件时的主要数据类型。无论何时需要获取或转发电子邮件,都将使用此数据类型。

当使用Studio中的一个电子邮件活动发送电子邮件时,您可以添加主题、自定义正文、附件,甚至使用模板来完成所有这些。您还可以使用Orchestrator Asset或Read Text File活动来访问模板。

⭐Send SMTP Mail Message

本节我们将学习如何使用Gmail通过简单邮件传输协议SMTP自动发送单个附件和多个附件电子邮件。

在这个场景中,我们将向同一个电子邮件地址发送一封包含单个附件的电子邮件,其中包含一个PDF文件,另一封包含多个附件的电子邮件(其中包含三个PNG文件)。在构建自动化之前,让我们在自动化项目中为附件创建一个Data文件夹。

我们将从获取用户名和密码活动开始,这样我们就可以访问Gmail帐户。从保存的凭据部分,我们将选择我们的凭据集GmailCredentials。请注意,我们在这里使用的任何凭据都必须事先在Windows凭据管理器中创建。

让我们也为它们创建一个变量。我们称之为GmailCredentials。

接下来,让我们添加Send SMTP Mail Message activity,我们将在其中添加收件人、电子邮件主题和电子邮件正文。这将是包含单个附件的电子邮件。

那么,我们该如何附加文件呢?

在属性面板中,我们将打开附件部分并创建一个In Argument,它的值将是本地文件的路径。

在发送电子邮件之前,我们需要更新主机部分中的一些其他属性,例如端口值和服务器值smtp.gmail.com。

在登录部分,我们需要添加用于发送电子邮件的帐户的电子邮件地址,我们将使用前面创建的Gmail凭据变量及其密码。

就这样,工作流已完全配置为发送单个附件电子邮件。

接下来,我们可以创建一个列表并遍历每个文件。让我们继续添加For Each File活动并进行配置!

我们将更新文件夹名称,因为我们只对png格式的文件感兴趣,所以我们将用wildcard.png填充过滤器。

要创建列表,我们需要一个TypeArgument设置为String的Add To Collection活动,将一个集合定义为AttachmentsList,然后将当前文件的全名添加为集合项。我们不要忘记用新的字符串列表实例化AttachmentsList变量,并将其范围扩大到序列,以便我们也可以在下一个活动中使用。

现在,让我们通过在For Each File In Folder活动下复制Send SMTP Mail Message活动来重新使用它。作为最佳实践,我们将更新第一个发送SMTP活动的名称以反映单个附件,并更新第二个以反映多个附件。这里还有一些更新需要执行。我们需要更新电子邮件正文和标题,以便它引用多个附件。让我们用新的AttachmentsList变量替换保存pdf单个附件文件路径的变量。

让我们来执行这个项目吧!

让我们查看Gmail收件箱。我们可以看到,我们收到了单个和多个附件电子邮件。让我们打开一个附件,我们可以看到正确的标题、正文和PDF文件。

现在,让我们查看多附件电子邮件,对于这封邮件,我们有正确的标题、正文和多个附件。

⭐ 按预设好的模板发送电子邮件

通过本节我们将知道如何

创建并阅读电子邮件正文中使用的模板。 创建列表变量类型以存储收件人地址。 使用String dot Format表达式配置邮件正文。 截屏并存储其输出,以供自动化过程使用。 并使用Send Outlook Mail Message活动发送带有附件的电子邮件。

我们将构建一个简单的流程来向收件人列表发送Outlook电子邮件。电子邮件正文使用模板中的文本并包含附件。

让我们打开Main。既然我们想使用电子邮件模板并包含附件,那么让我们首先添加一个新文件夹来存储这些内容。

使用模板进行电子邮件自动化很容易。我们只需要编写消息,将其保存为文本文件,然后在工作流中调用它。

可以为此,让我们打开Data文件夹并创建一个新的文本文档来保存我们的消息。花括号包含收件人的索引,0是第一个索引。运行进程时,此值将被实际收件人名称替换。

为了阅读模板,让我们添加一个Read Text活动并重命名顶部序列。要选择模板,让我们浏览到保存文本文件的位置并选择它。要存储模板文本,我们必须在“输出到”属性字段中创建一个新变量。

让我们将其命名为EmailTemplate,并相应地重命名该活动。

现在,让我们定义收件人列表。为此,让我们转到“变量”面板,创建一个名为“收件人列表”的新变量,并确保我们设置了正确的变量类型。即字符串列表。

我们可以在System.Collections.Generic下找到我们正在寻找的正确类型。

接下来,让我们打开默认的表达式编辑器。在这里,我们可以编写以下表达式来初始化一个新列表,并用收件人的电子邮件地址填充它。

这里我们只添加了一个收件人,但要知道,只需键入一个新地址并在地址之间添加一个逗号,就可以添加更多收件人。既然我们已经定义了收件人列表,那么让我们指定每个收件人需要哪些操作。不要忘记将“类型参数”从“对象”更改为“字符串”。

接下来,我们想在“收件箱”文件夹中截取其中一封电子邮件的屏幕截图,然后将其附加到电子邮件中。为此,我们首先需要添加“使用应用程序或浏览器”活动。

我们现在可以指定要自动化的应用程序,即Outlook。

要截屏,我们添加一个Take Screenshot活动,并在“收件箱”文件夹中指明一个元素。让我们选择一个新的电子邮件通知,以及“未读”标签。要存储输出,我们必须选择“图像”并创建一个新变量。

现在我们可以将屏幕截图保存在首选位置。我们添加Save Image活动,引用屏幕截图附件变量,浏览到要保存图像的位置,并提供名称。

我们现在可以发送邮件了。因此,让我们添加Send Outlook Mail Message活动。我们指定收件人,写主题,对于正文,让我们添加一个表达式来使用我们的模板。

要只在电子邮件正文中添加收件人的姓名,而不添加电子邮件域,我们可以拆分字符串并选择“first”,只写第一部分,即“at”字符之前。

现在单击“附加文件”添加附件。这里,我们将参数的方向指定为“In”,确保类型为String,并添加图像所在的位置。

接下来,让我们添加一条日志消息来通知我们流程的执行情况。

通过检查Outlook收件箱文件夹,我们可以看到电子邮件已发送和接收。电子邮件包括收件人的姓名、模板中的文本和保存的附件。

⭐ Sending a Calendar Invite with Outlook Integration

这节我们将构建一个流程,从Excel文件中获取电子邮件地址,并使用Outlook的集成活动发送电子邮件邀请。将根据我们将设置的配置发送到每个电子邮件地址。

让我们在项目中创建一个文件夹,用于存储与会者列表。在新创建的文件夹中,让我们添加包含与会者列表的Excel文件。

首先,让我们阅读Excel文件。为此,我们当然使用了工作簿Read Range活动。我们指定文件的路径并删除范围。让我们不要忘记用描述性的方式命名我们的活动并创建一个DataTable变量,它将保存我们的参与者列表。

接下来,我们将使用Send Calendar Invit活动,该活动需要添加到Use Desktop Outlook App活动中。

这里有一个快速提示,必须在“使用Outlook 365”、“使用Gmail”或“使用桌面Outlook应用程序”活动中添加“发送日历邀请”活动。

我们将该帐户称为Outlook。

让我们将其命名为Developer meeting。

现在,对于必填与会者字段,我们需要一个表达式来容纳与会者列表。

正如前面提到的,Outlook只接受一种类型的字符串。

因此,我们用一个字符串填充该字段,该字符串是通过连接数据表“与会者”列中的所有值而获得的,值之间用分号分隔。

接下来,让我们设置当前日期、时间并指定持续时间。

我们还可以提供有关地点的详细信息,如Zoom meeting。

要检查的一个重要属性是保存而不发送字段。如果选中,会议将保存到我们的日历中,但邀请不会发送给其他与会者。

这是会议邀请,完美!

4️⃣ 总结

在自动化发送单个附件电子邮件的过程时,我们需要创建一个in argument ,将文件的路径存储在Send SMTP Mail Message活动的Attachments部分。 当自动发送多个附件的过程时,我们需要使用For Each File in Folder活动以及Add To Collection活动来遍历我们在文件夹中指定的每个文件。在我们的例子中,我们配置了一个过滤器,它只从数据文件夹中附加png文件。 要创建模板,我们必须将消息写入新的文本文档中,然后使用Read Text活动来阅读它。 要存储模板文本,我们必须在Output to属性字段中创建一个新变量。 要将截图附加到电子邮件,我们需要使用Take Screenshot活动,然后将结果存储为变量。 Send Outlook Mail Message活动从Outlook发送电子邮件。

5️⃣ 参考资料

About the Mail Activities Pack App Integration

⭐写在结尾:

文章中出现的任何错误请大家批评指出,一定及时修改。

希望写在这里的小伙伴能给个三连支持!

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: