- 保存附件(Save Attachments)的介绍
将邮件附件保存到指定的文件夹。如果该文件夹不存在,则会自动创建。如果未指定文件夹,则会将下载内容保存在当前项目文件夹中。注意, 指定文件夹中与附件同名的文件将会被覆盖。
二、Save Attachments在UiPath中的使用
- 打开设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路径,然后在Activities中搜索Get IMAP Mail Messages,并将其拖至设计区,本案例以QQ邮箱为例, 在Email属性中, 输入你要下载附件的邮箱地址, Password属性中, 输入授权码(而不是密码. 关于每种邮箱授权码的获取, 大家可以自行在网上查找资料). MailFolder属性中输入”收件箱”, Port属性中输入接收邮件服务器端口(QQ邮箱接收邮件服务器端口为993), Server属性中输入接收邮件服务器名称(QQ邮箱接收邮件服务名称为http://imap.qq.com). OnlyUnreadMessages默认为勾选状态, 表示是否只读取未读的邮件, 大家可以根据需要自行选择是否勾选. Top属性表示阅读前面N封邮件. 在Messages属性中使用快捷键Ctrl + k自定义List<MailMessage>类型的变量messagesList, 用来保存读取到的邮件列表
![3def74ef275da22425deaa1ee44a9a06.png](https://i-blog.csdnimg.cn/blog_migrate/32b66ff1215fae5100086932d3916f29.png)
![55a956e3f4bdbefb129dee7e42722479.png](https://i-blog.csdnimg.cn/blog_migrate/e869cb15ebaafe01f8c5ea6e7646927b.png)
- 在Activities中搜索For Each,并将其拖至设计区, 修改TypeArgument类型为System.Net.Mail.MailMessage类型, Values属性中输入步骤1定义的变量messagesList, item变量修改为mail方便阅读
![ba3fc810587a86f9454ec8935c8ae7d2.png](https://i-blog.csdnimg.cn/blog_migrate/982a1c30922390402e6f2b92ca26a5c2.png)
![9c21254e5137e037326cf4997d5b32a3.png](https://i-blog.csdnimg.cn/blog_migrate/e11aa5e62fdc804619be809e8e61db1e.png)
- 在Activities中搜索If,并将其拖至For Each的Body设计区, 在Condition属性中输入mail.Subject.Contains("personal data change request"), 表示如果邮件主题包含”personal data change request” 字符串, 则进行下一步操作
![ccbfa6c26784d1a773fd097dc0ed1c2e.png](https://i-blog.csdnimg.cn/blog_migrate/6c113d7056238869c857713307016744.png)
- 在Activities中搜索Assign,并将其拖至If活动的Then设计区, 在To属性中使用快捷键Ctrl + k自定义字符串类型变量emloyeeNumber, Value属性中输入mail.Subject.Split("#".ToCharArray)(1).Split(" ".ToCharArray)(0), 表示将标题Employee #123456 personal data change request分隔为Employee和123456 personal data change request两部分,(1)表示取第二个值;.Split(" ".ToCharArray)(0)表示将123456 personal data change request通过空格进行分隔,取其中的第一个值,即123456
![4f3e4734c193a5b0a018d6a1e5ca44ec.png](https://i-blog.csdnimg.cn/blog_migrate/2dd3af6b6e27d5b8ecac6cb714eab1ca.png)
![b3e1f6b98783d562c34af9421a931701.png](https://i-blog.csdnimg.cn/blog_migrate/f121ca601ff05afb83e811a9da9624a3.png)
- 在Activities中搜索Save Attachments,并将其拖至设计区, 在Message属性中输入mail变量, 在FolderPath属性中输入保存附件文件的路径, 本案例路径为"Attachments/" + emloyeeNumber, 表示将每个邮件的附件分别存储在指定路径的子文件夹中,并用emloyeeNumber命名该子文件夹.
![ae3447802751a7a5b19cd0fe07ddb8a4.png](https://i-blog.csdnimg.cn/blog_migrate/11abf144c4dcaf326e3030f20dde2f4d.png)
![99b339360ff1a50323d6d1b77667d74b.png](https://i-blog.csdnimg.cn/blog_migrate/c3caeca064a5217fb661e270462d48bd.png)
- 案例完整流程
![7741ed1d2b98bde8640b0b7f8af7b20c.png](https://i-blog.csdnimg.cn/blog_migrate/22505d76917f5586e651097c7d9eb7d7.jpeg)
- 运行完成后, 可以看到相应文件路径下已经将符合条件的邮件附件下载
原邮件
![5f0140c036e79dbc3895cf27c624ba59.png](https://i-blog.csdnimg.cn/blog_migrate/7df512e96d269d4a53d7fbf412bde261.png)
![555407e05a6a55a8fad26ec8fe319611.png](https://i-blog.csdnimg.cn/blog_migrate/3e52d2c427f7d86425f313ceb285b5e5.png)
下载到本地的附件文件
![cf35577351f94b123ef8dc2dd2a7700f.png](https://i-blog.csdnimg.cn/blog_migrate/668040a745bba2e3dc22244fe4cb9ee4.png)
![30240f13933f49fb79b587df813a1bec.png](https://i-blog.csdnimg.cn/blog_migrate/4a7239cf079fe68196ddb5c0bbc07904.png)
#运行完成,你会看到相应文件路径下已经将符合条件的邮件附件下载
总结:以上流程就用到了保存附件(Save Attachments)的操作,大家可以动手试试