com.sun.mail.pop3
Class POP3Message

java.lang.Object
  extended by javax.mail.Message
      extended by javax.mail.internet.MimeMessage
          extended by com.sun.mail.pop3.POP3Message
All Implemented Interfaces:
javax.mail.internet.MimePart, javax.mail.Part

public class POP3Message
extends javax.mail.internet.MimeMessage

A POP3 Message. Just like a MimeMessage except that some things are not supported.


Nested Class Summary
 
Nested classes/interfaces inherited from class javax.mail.internet.MimeMessage
javax.mail.internet.MimeMessage.RecipientType
 
Field Summary
 
Fields inherited from class javax.mail.internet.MimeMessage
content, contentStream, dh, flags, headers, modified, saved
 
Fields inherited from class javax.mail.Message
expunged, msgnum, session
 
Fields inherited from interface javax.mail.Part
ATTACHMENT, INLINE
 
Constructor Summary
POP3Message(javax.mail.Folder folder, int msgno)
           
 
Method Summary
 void addHeader(java.lang.String name, java.lang.String value)
          Add this value to the existing values for this header_name.
 void addHeaderLine(java.lang.String line)
          Add a raw RFC822 header-line.
 java.util.Enumeration getAllHeaderLines()
          Get all header lines as an Enumeration of Strings.
 java.util.Enumeration getAllHeaders()
          Return all the headers from this Message as an enumeration of Header objects.
protected  java.io.InputStream getContentStream()
          Produce the raw bytes of the content.
 java.lang.String[] getHeader(java.lang.String name)
          Get all the headers for this header_name.
 java.lang.String getHeader(java.lang.String name, java.lang.String delimiter)
          Get all the headers for this header name, returned as a single String, with headers separated by the delimiter.
 java.util.Enumeration getMatchingHeaderLines(java.lang.String[] names)
          Get matching header lines as an Enumeration of Strings.
 java.util.Enumeration getMatchingHeaders(java.lang.String[] names)
          Return matching headers from this Message as an Enumeration of Header objects.
 java.util.Enumeration getNonMatchingHeaderLines(java.lang.String[] names)
          Get non-matching header lines as an Enumeration of Strings.
 java.util.Enumeration getNonMatchingHeaders(java.lang.String[] names)
          Return non-matching headers from this Message as an Enumeration of Header objects.
 int getSize()
          Return the size of the content of this message in bytes.
 void invalidate(boolean invalidateHeaders)
          Invalidate the cache of content for this message object, causing it to be fetched again from the server the next time it is needed.
 void removeHeader(java.lang.String name)
          Remove all headers with this name.
 void saveChanges()
          POP3 message can't be changed.
 void setFlags(javax.mail.Flags newFlags, boolean set)
          Set the specified flags on this message to the specified value.
 void setHeader(java.lang.String name, java.lang.String value)
          Set the value for this header_name.
 java.io.InputStream top(int n)
          Fetch the header of the message and the first n lines of the raw content of the message.
 void writeTo(java.io.OutputStream os, java.lang.String[] ignoreList)
          Output the message as an RFC 822 format stream, without specified headers.
 
Methods inherited from class javax.mail.internet.MimeMessage
addFrom, addRecipients, addRecipients, createInternetHeaders, createMimeMessage, getAllRecipients, getContent, getContentID, getContentLanguage, getContentMD5, getContentType, getDataHandler, getDescription, getDisposition, getEncoding, getFileName, getFlags, getFrom, getInputStream, getLineCount, getMessageID, getRawInputStream, getReceivedDate, getRecipients, getReplyTo, getSender, getSentDate, getSubject, isMimeType, isSet, parse, reply, setContent, setContent, setContentID, setContentLanguage, setContentMD5, setDataHandler, setDescription, setDescription, setDisposition, setFileName, setFrom, setFrom, setRecipients, setRecipients, setReplyTo, setSender, setSentDate, setSubject, setSubject, setText, setText, setText, updateHeaders, updateMessageID, writeTo
 
Methods inherited from class javax.mail.Message
addRecipient, getFolder, getMessageNumber, isExpunged, match, setExpunged, setFlag, setMessageNumber, setRecipient
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

POP3Message

public POP3Message(javax.mail.Folder folder,
                   int msgno)
            throws javax.mail.MessagingException
Throws:
javax.mail.MessagingException
Method Detail

setFlags

public void setFlags(javax.mail.Flags newFlags,
                     boolean set)
              throws javax.mail.MessagingException
Set the specified flags on this message to the specified value.

Overrides:
setFlags in class javax.mail.internet.MimeMessage
Parameters:
newFlags - the flags to be set
set - the value to be set
Throws:
javax.mail.MessagingException
See Also:
MessageChangedEvent

getSize

public int getSize()
            throws javax.mail.MessagingException
Return the size of the content of this message in bytes. Returns -1 if the size cannot be determined.

Note that this number may not be an exact measure of the content size and may or may not account for any transfer encoding of the content.

Specified by:
getSize in interface javax.mail.Part
Overrides:
getSize in class javax.mail.internet.MimeMessage
Returns:
size of content in bytes
Throws:
javax.mail.MessagingException

getContentStream

protected java.io.InputStream getContentStream()
                                        throws javax.mail.MessagingException
Produce the raw bytes of the content. The data is fetched using the POP3 RETR command.

Overrides:
getContentStream in class javax.mail.internet.MimeMessage
Throws:
javax.mail.MessagingException
See Also:
MimeMessage.contentStream

invalidate

public void invalidate(boolean invalidateHeaders)
Invalidate the cache of content for this message object, causing it to be fetched again from the server the next time it is needed. If invalidateHeaders is true, invalidate the headers as well.

Parameters:
invalidateHeaders - invalidate the headers as well?

top

public java.io.InputStream top(int n)
                        throws javax.mail.MessagingException
Fetch the header of the message and the first n lines of the raw content of the message. The headers and data are available in the returned InputStream.

Parameters:
n - number of lines of content to fetch
Returns:
InputStream containing the message headers and n content lines
Throws:
javax.mail.MessagingException

getHeader

public java.lang.String[] getHeader(java.lang.String name)
                             throws javax.mail.MessagingException
Get all the headers for this header_name. Note that certain headers may be encoded as per RFC 2047 if they contain non US-ASCII characters and these should be decoded.

Specified by:
getHeader in interface javax.mail.Part
Overrides:
getHeader in class javax.mail.internet.MimeMessage
Parameters:
name - name of header
Returns:
array of headers
Throws:
javax.mail.MessagingException
See Also:
MimeUtility

getHeader

public java.lang.String getHeader(java.lang.String name,
                                  java.lang.String delimiter)
                           throws javax.mail.MessagingException
Get all the headers for this header name, returned as a single String, with headers separated by the delimiter. If the delimiter is null, only the first header is returned.

Specified by:
getHeader in interface javax.mail.internet.MimePart
Overrides:
getHeader in class javax.mail.internet.MimeMessage
Parameters:
name - the name of this header
delimiter - delimiter between returned headers
Returns:
the value fields for all headers with this name
Throws:
javax.mail.MessagingException

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
               throws javax.mail.MessagingException
Set the value for this header_name. Throws IllegalWriteException because POP3 messages are read-only.

Specified by:
setHeader in interface javax.mail.Part
Overrides:
setHeader in class javax.mail.internet.MimeMessage
Parameters:
name - header name
value - header value
Throws:
javax.mail.IllegalWriteException - because the underlying implementation does not support modification
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder.
javax.mail.MessagingException
See Also:
MimeUtility

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
               throws javax.mail.MessagingException
Add this value to the existing values for this header_name. Throws IllegalWriteException because POP3 messages are read-only.

Specified by:
addHeader in interface javax.mail.Part
Overrides:
addHeader in class javax.mail.internet.MimeMessage
Parameters:
name - header name
value - header value
Throws:
javax.mail.IllegalWriteException - because the underlying implementation does not support modification
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder.
javax.mail.MessagingException
See Also:
MimeUtility

removeHeader

public void removeHeader(java.lang.String name)
                  throws javax.mail.MessagingException
Remove all headers with this name. Throws IllegalWriteException because POP3 messages are read-only.

Specified by:
removeHeader in interface javax.mail.Part
Overrides:
removeHeader in class javax.mail.internet.MimeMessage
Parameters:
name - the name of this header
Throws:
javax.mail.IllegalWriteException - because the underlying implementation does not support modification
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder.
javax.mail.MessagingException

getAllHeaders

public java.util.Enumeration getAllHeaders()
                                    throws javax.mail.MessagingException
Return all the headers from this Message as an enumeration of Header objects.

Note that certain headers may be encoded as per RFC 2047 if they contain non US-ASCII characters and these should be decoded.

Specified by:
getAllHeaders in interface javax.mail.Part
Overrides:
getAllHeaders in class javax.mail.internet.MimeMessage
Returns:
array of header objects
Throws:
javax.mail.MessagingException
See Also:
MimeUtility

getMatchingHeaders

public java.util.Enumeration getMatchingHeaders(java.lang.String[] names)
                                         throws javax.mail.MessagingException
Return matching headers from this Message as an Enumeration of Header objects.

Specified by:
getMatchingHeaders in interface javax.mail.Part
Overrides:
getMatchingHeaders in class javax.mail.internet.MimeMessage
Returns:
enumeration of Header objects
Throws:
javax.mail.MessagingException

getNonMatchingHeaders

public java.util.Enumeration getNonMatchingHeaders(java.lang.String[] names)
                                            throws javax.mail.MessagingException
Return non-matching headers from this Message as an Enumeration of Header objects.

Specified by:
getNonMatchingHeaders in interface javax.mail.Part
Overrides:
getNonMatchingHeaders in class javax.mail.internet.MimeMessage
Returns:
enumeration of Header objects
Throws:
javax.mail.MessagingException

addHeaderLine

public void addHeaderLine(java.lang.String line)
                   throws javax.mail.MessagingException
Add a raw RFC822 header-line. Throws IllegalWriteException because POP3 messages are read-only.

Specified by:
addHeaderLine in interface javax.mail.internet.MimePart
Overrides:
addHeaderLine in class javax.mail.internet.MimeMessage
Throws:
javax.mail.IllegalWriteException - because the underlying implementation does not support modification
java.lang.IllegalStateException - if this message is obtained from a READ_ONLY folder.
javax.mail.MessagingException

getAllHeaderLines

public java.util.Enumeration getAllHeaderLines()
                                        throws javax.mail.MessagingException
Get all header lines as an Enumeration of Strings. A Header line is a raw RFC822 header-line, containing both the "name" and "value" field.

Specified by:
getAllHeaderLines in interface javax.mail.internet.MimePart
Overrides:
getAllHeaderLines in class javax.mail.internet.MimeMessage
Throws:
javax.mail.MessagingException

getMatchingHeaderLines

public java.util.Enumeration getMatchingHeaderLines(java.lang.String[] names)
                                             throws javax.mail.MessagingException
Get matching header lines as an Enumeration of Strings. A Header line is a raw RFC822 header-line, containing both the "name" and "value" field.

Specified by:
getMatchingHeaderLines in interface javax.mail.internet.MimePart
Overrides:
getMatchingHeaderLines in class javax.mail.internet.MimeMessage
Throws:
javax.mail.MessagingException

getNonMatchingHeaderLines

public java.util.Enumeration getNonMatchingHeaderLines(java.lang.String[] names)
                                                throws javax.mail.MessagingException
Get non-matching header lines as an Enumeration of Strings. A Header line is a raw RFC822 header-line, containing both the "name" and "value" field.

Specified by:
getNonMatchingHeaderLines in interface javax.mail.internet.MimePart
Overrides:
getNonMatchingHeaderLines in class javax.mail.internet.MimeMessage
Throws:
javax.mail.MessagingException

saveChanges

public void saveChanges()
                 throws javax.mail.MessagingException
POP3 message can't be changed. This method throws IllegalWriteException.

Overrides:
saveChanges in class javax.mail.internet.MimeMessage
Throws:
javax.mail.IllegalWriteException - because the underlying implementation does not support modification
javax.mail.MessagingException

writeTo

public void writeTo(java.io.OutputStream os,
                    java.lang.String[] ignoreList)
             throws java.io.IOException,
                    javax.mail.MessagingException
Output the message as an RFC 822 format stream, without specified headers. If the property "mail.pop3.cachewriteto" is set to "true", and ignoreList is null, and the message hasn't already been cached as a side effect of other operations, the message content is cached before being written. Otherwise, the message is streamed directly to the output stream without being cached.

Overrides:
writeTo in class javax.mail.internet.MimeMessage
Throws:
javax.mail.MessagingException
java.io.IOException - if an error occurs writing to the stream or if an error is generated by the javax.activation layer.
See Also:
DataHandler.writeTo(java.io.OutputStream)