コード例 #1
0
  private void prepareMailbox() throws Exception {
    // connect to mailbox
    Mailbox.clearAll();
    JavaMailSender sender = new DefaultJavaMailSender();
    Store store = sender.getSession().getStore("pop3");
    store.connect("localhost", 25, "bill", "secret");
    Folder folder = store.getFolder("INBOX");
    folder.open(Folder.READ_WRITE);
    folder.expunge();

    long twoDaysAgo = new Date().getTime() - 2 * 24 * 60 * 60 * 1000L;
    long twentyHoursAgo = new Date().getTime() - 1 * 20 * 60 * 60 * 1000L;
    long oneHourAgo = new Date().getTime() - 1 * 1 * 60 * 60 * 1000L;

    // inserts 5 new messages
    Message[] messages = new Message[6];
    messages[0] = new MimeMessage(sender.getSession());
    messages[0].setSubject("Apache Camel rocks");
    messages[0].setText("I like riding the Camel");
    messages[0].setHeader("Message-ID", "0");
    messages[0].setFrom(new InternetAddress("*****@*****.**"));
    messages[0].setSentDate(new Date(twoDaysAgo));

    messages[1] = new MimeMessage(sender.getSession());
    messages[1].setSubject("Order");
    messages[1].setText("Ordering Camel in Action");
    messages[1].setFrom(new InternetAddress("*****@*****.**"));
    messages[1].setHeader("Message-ID", "1");
    messages[1].setSentDate(new Date(twoDaysAgo));

    messages[2] = new MimeMessage(sender.getSession());
    messages[2].setSubject("Order");
    messages[2].setText("Ordering ActiveMQ in Action");
    messages[2].setHeader("Message-ID", "2");
    messages[2].setFrom(new InternetAddress("*****@*****.**"));
    messages[2].setSentDate(new Date(twentyHoursAgo));

    messages[3] = new MimeMessage(sender.getSession());
    messages[3].setSubject("Buy pharmacy");
    messages[3].setText("This is spam");
    messages[3].setHeader("Message-ID", "3");
    messages[3].setFrom(new InternetAddress("*****@*****.**"));
    messages[3].setSentDate(new Date(twentyHoursAgo));

    messages[4] = new MimeMessage(sender.getSession());
    messages[4].setSubject("Beers tonight?");
    messages[4].setText("We meet at 7pm the usual place");
    messages[4].setHeader("Message-ID", "4");
    messages[4].setFrom(new InternetAddress("*****@*****.**"));
    messages[4].setSentDate(new Date(oneHourAgo));

    messages[5] = new MimeMessage(sender.getSession());
    messages[5].setSubject("Spambot attack");
    messages[5].setText("I am attaching you");
    messages[5].setHeader("Message-ID", "5");
    messages[5].setFrom(new InternetAddress("*****@*****.**"));
    messages[5].setSentDate(new Date());
    messages[5].setSentDate(new Date(oneHourAgo));

    folder.appendMessages(messages);
    folder.close(true);
  }
コード例 #2
0
  protected JavaMailSender createJavaMailSender() {
    JavaMailSender answer = new DefaultJavaMailSender();

    if (javaMailProperties != null) {
      answer.setJavaMailProperties(javaMailProperties);
    } else {
      // set default properties if none provided
      answer.setJavaMailProperties(createJavaMailProperties());
      // add additional properties if provided
      if (additionalJavaMailProperties != null) {
        answer.getJavaMailProperties().putAll(additionalJavaMailProperties);
      }
    }

    if (host != null) {
      answer.setHost(host);
    }
    if (port >= 0) {
      answer.setPort(port);
    }
    if (username != null) {
      answer.setUsername(username);
    }
    if (password != null) {
      answer.setPassword(password);
    }
    if (protocol != null) {
      answer.setProtocol(protocol);
    }
    if (session != null) {
      answer.setSession(session);
    } else {
      ClassLoader tccl = Thread.currentThread().getContextClassLoader();
      try {
        if (applicationClassLoader != null) {
          Thread.currentThread().setContextClassLoader(applicationClassLoader);
        }
        // use our authenticator that does no live user interaction but returns the already
        // configured username and password
        Session session =
            Session.getInstance(
                answer.getJavaMailProperties(),
                new DefaultAuthenticator(getUsername(), getPassword()));
        // sets the debug mode of the underlying mail framework
        session.setDebug(debugMode);
        answer.setSession(session);
      } finally {
        Thread.currentThread().setContextClassLoader(tccl);
      }
    }

    return answer;
  }