com.icegreen.greenmail.mail
Class MovingMessage

java.lang.Object
  extended by com.icegreen.greenmail.mail.MovingMessage

public class MovingMessage
extends Object

Contains information for delivering a mime email.

Since a MovingMessage many be passed through many queues and handlers before it can be safely deleted, destruction it handled by reference counting. When an object first obtains a reference to a MovingMessage, it should immediately call acquire(). As soon as it has finished processing, that object must call releaseContent(). For example usage, see foedus.processing.OutgoingImpl.


Constructor Summary
MovingMessage(Workspace workspace)
           
 
Method Summary
 void acquire()
           
 void addRecipient(MailAddress s)
           
 Reader getContent()
           
 MimeMessage getMessage()
           
 Iterator getRecipientIterator()
           
 MailAddress getReturnPath()
           
 List getToAddresses()
           
 void readDotTerminatedContent(BufferedReader in)
          Reads the contents of the stream until <CRLF>.<CRLF> is encountered.
 void releaseContent()
           
 void removeRecipient(MailAddress s)
           
 void setReturnPath(MailAddress fromAddress)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MovingMessage

public MovingMessage(Workspace workspace)
Method Detail

getToAddresses

public List getToAddresses()

getMessage

public MimeMessage getMessage()

getContent

public Reader getContent()
                  throws IOException
Throws:
IOException

acquire

public void acquire()

releaseContent

public void releaseContent()

getReturnPath

public MailAddress getReturnPath()

setReturnPath

public void setReturnPath(MailAddress fromAddress)

addRecipient

public void addRecipient(MailAddress s)

removeRecipient

public void removeRecipient(MailAddress s)

getRecipientIterator

public Iterator getRecipientIterator()

readDotTerminatedContent

public void readDotTerminatedContent(BufferedReader in)
                              throws IOException
Reads the contents of the stream until <CRLF>.<CRLF> is encountered.

It would be possible and prehaps desirable to prevent the adding of an unnecessary CRLF at the end of the message, but it hardly seems worth 30 seconds of effort.

Throws:
IOException