邮件回复审批工作流:通过正则表达式提取关键审批信息

简介:
  1. 提醒邮件demo

wKioL1drT8mAOt7GAABDTbeDM8A638.png

2.同意和拒绝使用mailTo标签

1
2
3
4
5
6
7
< a  href="mailto:chao.gao@feixun.com.cn? cc = xu02 .xu@feixun.com.cn
&amp; subject = OA 审批
&amp;body=审批意见:同意&lt;br&gt;审批任务ID:1234567890"  target = "_blank"  style="font-size: 14px;
padding: 2px 6px;
display: block;
color: #ffffff;">
同意</ a >

    mailTo标签相比邮件审批的参考系统U8和费控有较大进步:1.不需要用户再输入额外信息;2.回复不再使用邮箱自带的回复功能,可以减少对解析回复邮件的干扰;

3.回复邮件格式

审批意见:同意
审批任务ID:1234567890

备注:同意休假

4.解析过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
     public  StringBuffer getMailContent(Part part)  throws  Exception {
        StringBuffer bodyText =  new  StringBuffer();
         String contentType = part.getContentType();
         // 获得邮件的MimeType类型
       // System.out.println("邮件的MimeType类型: " + contentType);
         int  nameIndex = contentType.indexOf( "name" );
         boolean  conName =  false ;
         if  (nameIndex != - 1 ) {
             conName =  true ;
         }
        // System.out.println("邮件内容的类型: " + contentType);
         if  (part.isMimeType( "text/plain" ) && conName ==  false ) {
             // text/plain 类型
          //  bodyText.append((String) part.getContent());
             String textContent = (String) part.getContent();
        /*     String reg1 = ".*审批意见:([^\\r\\n]*)\\r\\n?.*";
             String reg2 = ".*审批任务ID:([^\\r\\n|]*)\\r\\n?.*";*/
             
         String reg1 =  "[\\s\\S]*审批意见\\s*(:|:)\\s*([^\\r]*)\\|?[\\s\\S]*" ;
               //"[\\s\\S]*审批意见\\s*(:|:)\\s*([\\d\\-]*)\\|?[\\s\\S]*";
             String reg2 =  "[\\s\\S]*审批任务ID\\s*(:|:)\\s*([\\d\\-]*)\\|?[\\s\\S]*" ;
             String approve = textContent.replaceAll(reg1,  "$2" );
             String taskId = textContent.replaceAll(reg2,  "$2" );
             bodyText.append(approve +  ","  + taskId);
         else  if  (part.isMimeType( "text/html" ) && conName ==  false ) {
             // text/html 类型
            // bodyText.append((String) part.getContent());
         else  if  (part.isMimeType( "multipart/*" )) {
             // multipart/*
             Multipart multipart = (Multipart) part.getContent();
             int  counts = multipart.getCount();
             for  ( int  i =  0 ; i < counts; i++) {
                 getMailContent(multipart.getBodyPart(i));
             }
         else  if  (part.isMimeType( "message/rfc822" )) {
             // message/rfc822
             getMailContent((Part) part.getContent());
         else  {
         }
         return  bodyText;
     }




     本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/1792076 ,如需转载请自行联系原作者
相关文章
|
Python
如何使用正则表达式提取网页中的特定信息
如何使用正则表达式提取网页中的特定信息
752 1
|
Java 程序员
JavaSE——正则表达式(2/2):应用案例、查找信息、用于搜索替换、分割内容
JavaSE——正则表达式(2/2):应用案例、查找信息、用于搜索替换、分割内容
227 0
|
PHP
PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
242 0
|
JavaScript 前端开发
【JavaScript】不使用正则表达式和字符串的方式来解析浏览器的URl地址信息
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/82532501 1.
1142 0
|
新零售 Python
利用Python正则表达式抓取京东网商品信息
正则表达式 京东(http://JD.com)是中国最大的自营式电商企业,2015年第一季度在中国自营式B2C电商市场的占有率为56.3%。如此庞大的一个电商网站,上面的商品信息是海量的,小编今天就带小伙伴利用正则表达式,并且基于输入的关键词来实现主题爬虫。
1597 0
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。
Python使用正则表达式分割字符串
在Python中,你可以使用re模块的split()函数来根据正则表达式分割字符串。这个函数的工作原理类似于Python内置的str.split()方法,但它允许你使用正则表达式作为分隔符。