package com.porterhead.mail; import org.springframework.mail.MailException; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessagePreparator; import javax.mail.Session; import javax.mail.internet.MimeMessage; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; /** * @version 1.0 * @author: Iain Porter * @since 13/05/2013 */ public class InMemoryJavaMailSender implements JavaMailSender { List<MimeMessage> messages = new ArrayList<MimeMessage>(); public MimeMessage createMimeMessage() { MimeMessage message = new MimeMessage(Session.getInstance(new Properties())); return message; } public MimeMessage createMimeMessage(InputStream contentStream) throws MailException { return null; //To change body of implemented methods use File | Settings | File Templates. } public void send(MimeMessage mimeMessage) throws MailException { //To change body of implemented methods use File | Settings | File Templates. } public void send(MimeMessage[] mimeMessages) throws MailException { //To change body of implemented methods use File | Settings | File Templates. } public void send(MimeMessagePreparator mimeMessagePreparator) throws MailException { try { MimeMessage mimeMessage = createMimeMessage(); mimeMessagePreparator.prepare(mimeMessage); messages.add(mimeMessage); } catch(Exception e) { System.out.println("Exception while preparing Mail Message" + e); throw new RuntimeException(e); } } public void send(MimeMessagePreparator[] mimeMessagePreparators) throws MailException { //To change body of implemented methods use File | Settings | File Templates. } public void send(SimpleMailMessage simpleMessage) throws MailException { //To change body of implemented methods use File | Settings | File Templates. } public void send(SimpleMailMessage[] simpleMessages) throws MailException { //To change body of implemented methods use File | Settings | File Templates. } public List<MimeMessage> getMessages() { return messages; } public void clear() { messages.clear(); } }