Пример #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);
  }
Пример #2
0
  @Test
  public void testCreateMessage() throws Exception {

    Properties props = System.getProperties();
    Session session = Session.getDefaultInstance(props);
    Mail mail = new Mail();
    mail.setContent("content");
    mail.setSubject("subject");
    mail.setReceipts(Arrays.asList("*****@*****.**"));

    List<Message> messages = mail.createMessages(session);

    assertEquals(1, messages.size());
    assertEquals(mail.getSubject(), messages.get(0).getSubject());
  }
Пример #3
0
  @Test
  public void testDisplayName() throws Exception {

    Properties props = System.getProperties();
    Session session = Session.getDefaultInstance(props);

    Mail mail = new Mail();
    mail.setContent("content");
    mail.setSubject("subject");
    mail.setReceipts(Arrays.asList("*****@*****.**"));

    List<Message> messages = mail.createMessages(session);
    String[] address = messages.get(0).getFrom()[0].toString().split("<");

    assertEquals("Inspector Gadget", address[0].trim());
  }