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

本文介绍了一种使用mailTo标签进行邮件审批的方法,该方法简化了用户的操作并改进了回复流程,避免了对审批邮件的干扰。同时,文章还详细解释了如何通过正则表达式从邮件内容中抽取审批意见及任务ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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 ,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值