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

简介:
  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 ,如需转载请自行联系原作者
相关文章
|
JavaScript 前端开发
【JavaScript】不使用正则表达式和字符串的方式来解析浏览器的URl地址信息
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/82532501 1.
1018 0
|
1月前
|
编译器 Python
Python正则表达式的7个使用典范(推荐)
Python正则表达式的7个使用典范(推荐)
22 0
|
1月前
|
Python
Python实现正则表达式匹配。
【2月更文挑战第11天】【2月更文挑战第30篇】Python实现正则表达式匹配。
|
1月前
|
Python
请解释Python中的正则表达式以及如何使用它们进行文本处理。
请解释Python中的正则表达式以及如何使用它们进行文本处理。
9 0
|
1月前
|
机器学习/深度学习 Python
请解释Python中的正则表达式是什么?并举例说明其用法。
【2月更文挑战第26天】【2月更文挑战第86篇】请解释Python中的正则表达式是什么?并举例说明其用法。
|
1月前
|
缓存 数据安全/隐私保护 Python
Python快速入门:类、文件操作、正则表达式
Python快速入门:类、文件操作、正则表达式
C4.
|
1月前
|
Python
Python正则表达式
Python正则表达式
C4.
13 1
|
1月前
|
Python
在Python中,如何使用`regex`库进行正则表达式匹配?
在Python中,如何使用`regex`库进行正则表达式匹配?
13 0
|
2月前
|
开发者 Python
Python中的正则表达式:re模块详解与实例
Python中的正则表达式:re模块详解与实例