利用javamail的功能将发送邮件的功能集成到java工作流系统中。javamail包提供有发送邮件的方法,设置发送人地址,收件人地址,抄送,主题,邮件服务器地址,认证用户等信息,再调用javamail的发送功能,就能将邮件发出。 将发送邮件的功能封装成通用的类,将发送人,收件人,认证用户,邮件服务器地址等作为参数,传递到通用的邮件类中。在需要发送邮件的节点处设置这些信息。java工作流引擎在执行流程的流转时,解释这些参数和执行发送邮件的类,将邮件发送给指定的人。
java工作流引擎在设计之初就应该留好这些接口,供集成发送邮件,发送短信等调用,当用户有了这些需求时,能快速方便的设置和使用这些功能。在eworkflow for java版本中就集成有发送邮件的功能。
发送邮件有定制的,也有直接调用的两种方式,在节点办理的前后可以指定发送邮件的功能。在任务引擎中也配置有发送邮件的功能,给任务创建人发送邮件,任务超期后,给相关人员发送邮件通知,任务完成时也可以发送邮件通知。甚至在任务分派后,定时的不断发送,直至任务完成。
利用javaMail发送邮件的功能很简单
String to = (String) args.get("to");
String from = (String) args.get("from");
String subject = (String) args.get("subject");
String cc = (String) args.get("cc");
String m = (String) args.get("message");
String smtpHost = (String) args.get("smtpHost");
获取设置信息中的发送人,收件人,主题,邮件服务器等信息
message.setSubject(parseVariables ? variableResolver.translateVariables(subject, transientVars, ps).toString() : subject); message.setSentDate(new Date());
message.setText(parseVariables ? variableResolver.translateVariables(m, transientVars, ps).toString() : m); message.saveChanges();
transport.connect();
transport.send(message);
transport.close();
执行发送邮件的命令
在java工作流系统中集成发送邮件的功能,主要要设计好流程引擎的接口,在相应的节点处能调用发送邮件的类,实现发送邮件的功能。