001 package com.hs.mail.mailet;
002
003 import java.io.FileInputStream;
004 import java.io.IOException;
005
006 import com.hs.mail.imap.mailbox.MailboxManager;
007 import com.hs.mail.imap.user.UserManager;
008 import com.hs.mail.smtp.message.MailAddress;
009 import com.hs.mail.smtp.message.Recipient;
010 import com.hs.mail.smtp.message.SmtpMessage;
011 import com.hs.mail.util.MailUtils;
012
013 public class DefaultMailetContext implements MailetContext {
014
015 private MailboxManager mailboxManager = null;
016 private UserManager userManager = null;
017
018 public MailboxManager getMailboxManager() {
019 return mailboxManager;
020 }
021
022 public void setMailboxManager(MailboxManager manager) {
023 this.mailboxManager = manager;
024 }
025
026 public UserManager getUserManager() {
027 return userManager;
028 }
029
030 public void setUserManager(UserManager manager) {
031 this.userManager = manager;
032 }
033
034 public void sendMail(String sender, String[] recipients, SmtpMessage msg)
035 throws IOException {
036 SmtpMessage message = prepare(sender, recipients);
037 try {
038 message.setContent(new FileInputStream(msg.getDataFile()));
039 message.store();
040 message.createTrigger();
041 } catch (IOException e) {
042 message.dispose();
043 }
044 }
045
046 private SmtpMessage prepare(String sender, String[] recipients) {
047 SmtpMessage message = new SmtpMessage(new MailAddress(sender, false));
048 for (String recipient : recipients) {
049 message.addRecipient(new Recipient(recipient, false));
050 }
051 return message;
052 }
053
054 public void storeMail(long soleRecipientID, String destination,
055 SmtpMessage msg) throws IOException {
056 mailboxManager.addMessage(soleRecipientID, msg.getMailMessage(),
057 MailUtils.encodeMailbox(destination));
058 }
059
060 }