文丨鄂攀
最近帮客户做了一个关于邮件处理的RPA项目,因为整个业务流程涉及的面比较多,实现起来确实需要考虑不少问题,所以特此做一下总结与分享。
大概业务要点如下。
关于客户的邮件流程全自动化,构想是希望通过无人值守的模式来对业务流程进行自动化处理,实现无人监管的模式。当有程序异常或者业务异常,再发送给相关IT人员和业务人员进行调整处理。
业务流程处理的技术方式有两种:
一种是通过网页前端页面的形式来获取发件人,标题,正文等内容进行判断处理;
另一种方式是通过邮件协议的方式,后台来实现业务流程自动化。
第一种前端页面的实现方式,是可视化方式,业务人员能够很直观的看到邮件在前端页面的展示方式。
但是存在一个问题,就是在处理的过程中一旦有新邮件进来,那么之前获取的Index在继续处理的时候,将会变成上一封邮件的内容。
唯一的处理办法就是处理之前关掉接受服务或者断网,但这对于公共邮箱来说,明显会产生不必要影响,所以此处能采取的就是第二种方式,邮件协议。
通过邮件协议的方式来满足此需求的话,大概需要以下邮箱功能的支持:
1、邮件收件人的单发和群发
2、邮件抄送与密送的获取和发送
3、邮件接收时间和发送时间的获取
4、邮件标题的获取与制作
5、邮件正文的获取与制作
6、邮件附件的数量获取
7、邮件附件的名字获取
8、邮件附件的添加和移除
9、某个收件箱对象的获取
10、邮件的删除和移动
11、邮件正文HTML格式的设定
12、收件箱邮件数量的获取
所以需要对发出去的每一封邮件做标记ID,以致于他们回复的时候,知道这封邮件是需要处理的邮件,并且根据ID知道属于之前的哪一个数据源以及是不是最后一封需要收集的邮件,以做统计。
而此处ID采用时间码(精确到秒)来做标记,所以关联到另一个问题就是要做Log信息,以便于做信息回流来匹配ID,从而找到之前做数据源处理的所有关键信息。
当然,此处Log并非是RPA机器人运行时产生的日志文件,而是实现流程开发时,自己需要做的一个关键信息记录,不仅便于客户看到后,知道问题在哪,处理了哪些信息,也方便自己串联流程。
经测试,在此邮件全流程自动化中,考虑到所有的业务异常,集中处理完当天的业务大概只需要三分钟到八分钟的时间。而业务人员每天的碎片化时间集中起来大概需要花费三四个小时去专门处理此类繁琐的业务。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。