package gov.nysenate.openleg.model.mail; import gov.nysenate.openleg.util.MailUtils; import javax.mail.*; import javax.mail.internet.MimeMessage; /** * A builder class that constructs a mail message */ public class MessageBuilder { private Message message; private MessageBuilder(Session session) { message = new MimeMessage(session); } public static MessageBuilder newMessage(Session session) { return new MessageBuilder(session); } public MessageBuilder from(Address... addresses) throws MessagingException { message.addFrom(addresses); return this; } public MessageBuilder to(Address... addresses) throws MessagingException { message.addRecipients(Message.RecipientType.TO, addresses); return this; } public MessageBuilder cc(Address... addresses) throws MessagingException { message.addRecipients(Message.RecipientType.CC, addresses); return this; } public MessageBuilder bcc(Address... addresses) throws MessagingException { message.addRecipients(Message.RecipientType.BCC, addresses); return this; } public MessageBuilder subject(String subject) throws MessagingException { message.setSubject(subject); return this; } public MessageBuilder text(String text) throws MessagingException { message.setText(text); return this; } public MessageBuilder content(Object content, String contentType) throws MessagingException { message.setContent(content, contentType); return this; } public MessageBuilder content(Multipart multipart) throws MessagingException { message.setContent(multipart); return this; } public Message build() { return message; } }