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

  1. 提醒邮件demo

wKioL1drT8mAOt7GAABDTbeDM8A638.png

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

<ahref="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:2px6px;
display:block;
color:#ffffff;">
同意</a>

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

3.回复邮件格式

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

备注:同意休假

4.解析过程:

publicStringBuffergetMailContent(Partpart)throwsException{
StringBufferbodyText=newStringBuffer();
StringcontentType=part.getContentType();
//获得邮件的MimeType类型
//System.out.println("邮件的MimeType类型:"+contentType);
intnameIndex=contentType.indexOf("name");
booleanconName=false;
if(nameIndex!=-1){
conName=true;
}
//System.out.println("邮件内容的类型: "+contentType);
if(part.isMimeType("text/plain")&&conName==false){
//text/plain类型
//bodyText.append((String)part.getContent());
StringtextContent=(String)part.getContent();
/*Stringreg1=".*审批意见:([^\\r\\n]*)\\r\\n?.*";
Stringreg2=".*审批任务ID:([^\\r\\n|]*)\\r\\n?.*";*/

Stringreg1="[\\s\\S]*审批意见\\s*(:|:)\\s*([^\\r]*)\\|?[\\s\\S]*";
//"[\\s\\S]*审批意见\\s*(:|:)\\s*([\\d\\-]*)\\|?[\\s\\S]*";
Stringreg2="[\\s\\S]*审批任务ID\\s*(:|:)\\s*([\\d\\-]*)\\|?[\\s\\S]*";
Stringapprove=textContent.replaceAll(reg1,"$2");
StringtaskId=textContent.replaceAll(reg2,"$2");
bodyText.append(approve+","+taskId);
}elseif(part.isMimeType("text/html")&&conName==false){
//text/html类型
//bodyText.append((String)part.getContent());
}elseif(part.isMimeType("multipart/*")){
//multipart/*
Multipartmultipart=(Multipart)part.getContent();
intcounts=multipart.getCount();
for(inti=0;i<counts;i++){
getMailContent(multipart.getBodyPart(i));
}
}elseif(part.isMimeType("message/rfc822")){
//message/rfc822
getMailContent((Part)part.getContent());
}else{
}
returnbodyText;
}

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...