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); }
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; }