예제 #1
0
  @SuppressWarnings("unchecked")
  @Override
  public void run() {

    // 解析邮件模板配置文件,跟据mailId取得邮件模板
    Map<String, Object> map = new HashMap<String, Object>();
    // 取得模板路径
    String templatePath = StringUtils.trimToEmpty((String) map.get("location"));
    // 取得邮件默认主题
    String subject = StringUtils.trimToEmpty((String) map.get("subject"));
    // 取得邮件的发送地址
    String senderAddress = StringUtils.trimToEmpty((String) map.get("senderAddress"));
    // 取得回复地址
    String replyTo = StringUtils.trimToEmpty((String) map.get("replyTo"));
    // 取得邮件的发送人的名字
    String senderDispaly = StringUtils.trimToEmpty((String) map.get("senderDispaly"));
    mail.setSubject(StringUtils.isEmpty(mail.getSubject()) ? subject : mail.getSubject());
    mail.setSenderAddress(
        StringUtils.isEmpty(mail.getSenderAddress()) ? senderAddress : mail.getSenderAddress());
    mail.setSenderDispaly(
        StringUtils.isEmpty(mail.getSenderDispaly()) ? senderDispaly : mail.getSenderDispaly());
    mail.setReplyTo(StringUtils.isEmpty(mail.getReplyTo()) ? replyTo : mail.getReplyTo());

    // 取得内嵌资源
    Map<String, String> mapInlineResource = new HashMap<String, String>();
    // 封装内嵌资源
    if (mapInlineResource != null && !mapInlineResource.isEmpty()) {
      for (Iterator<String> it = mapInlineResource.keySet().iterator(); it.hasNext(); ) {
        // 得到内嵌资源的key
        String key = it.next();
        // 得到key对应的内嵌资源的路径
        String keyValue = mapInlineResource.get(key);
        mail.addAttachs(getMailAttachByFilePath(key, keyValue));
      }
    }
    // 取得附件资源
    Map<String, String> mapAttach = (Map<String, String>) map.get("attach");
    // 封装附件资源
    if (mapAttach != null && !mapAttach.isEmpty()) {
      for (Iterator<String> it = mapAttach.keySet().iterator(); it.hasNext(); ) {
        // 得到内嵌资源的key
        String fileName = it.next();
        // 得到key对应的内嵌资源的路径
        String filePath = mapAttach.get(fileName);
        mail.addResource(getMailAttachByFilePath(fileName, filePath));
      }
    }
    String mailContent =
        VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templatePath, "UTF-8", model);
    mail.setContent(mailContent);
    // 调用邮件处理接口
    EmailMimeMessageUtils.sendMail(mailSender, mail);
  }