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 }