private void sendEmail(SubscribeEvent event, List<Actor> actors, OperateLog worklog) { // 工作日志的详细内容 String worklog_content = worklog.getContent(); Email email = new Email(); worklog_content += "发送方式:邮件["; String emailUid = this.idGeneratorService.nexttvak(Email.ATTACH_TYPE); email.setUid(emailUid); email.setStatus(Email.STATUS_SENDED); email.setType(Email.TYPE_NEW); email.setFileDate(Calendar.getInstance()); email.setSendDate(Calendar.getInstance()); email.setSubject(event.getSubject()); worklog_content += "邮件主题: " + event.getSubject(); Map<String, Object> args = new HashMap<String, Object>(); args.put("content", event.getContent()); // 根据事件的CODE 加上 “-EMAIL”后缀 查找模板中是否有配置 自定义的模板 Template custom = this.templateService.loadByCode(event.getCode() + "-EMAIL"); if (custom != null) { email.setContent(this.templateService.format(custom.getCode(), args)); } else { // 使用默认的邮件模板 email.setContent(this.templateService.format("BC-EMAIL-SYSTEMAUTOFORWARD", args)); } worklog_content += ",邮件内容: " + event.getContent(); // 系统管理员发送 Actor admin = this.actorService.loadByCode("admin"); email.setSender(admin); if (event.getAttachs() != null) { for (Attach attach : event.getAttachs()) { // 复制附件 this.attachService.doCopy( attach.getPtype(), attach.getPuid(), Email.ATTACH_TYPE, emailUid, true); } } // 设置发送人 Set<EmailTo> emailTos = new HashSet<EmailTo>(); worklog_content += ",邮件接收人:"; EmailTo et; int i = 0; for (Actor a : actors) { et = new EmailTo(); et.setEmail(email); et.setRead(false); et.setReceiver(a); // 正常发送 et.setType(EmailTo.TYPE_TO); et.setOrderNo(i); emailTos.add(et); if (i > 0) worklog_content += "、"; worklog_content += a.getName(); i++; } worklog_content += "]"; worklog.setContent(worklog_content); email.setTos(emailTos); this.emailService.save(email); }