Top Description Fields Constructors Methods
com.sun.mail.pop3

public Class POP3Message

extends MimeMessage
implements ReadableMime
Class Inheritance
All Implemented Interfaces
com.sun.mail.util.ReadableMime
Imports
java.io.*, java.util.Enumeration, java.util.logging.Level, java.lang.ref.SoftReference, javax.mail.*, javax.mail.internet.*, javax.mail.event.*, com.sun.mail.util.ReadableMime

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

Field Summary

Modifier and TypeField and Description
private POP3Folder
private int
private int
private SoftReference<InputStream>
pack-priv String
pack-priv static final String
Inherited from javax.mail.internet.MimeMessage:
cachedContentcontentcontentStreamdhflagsheadersmodifiedsaved

Constructor Summary

AccessConstructor and Description
public
POP3Message(Folder folder, int msgno)

Method Summary

Modifier and TypeMethod and Description
public void
addHeader(String
header name
name
,
String
header value
value
)

Overrides javax.mail.internet.MimeMessage.addHeader.

Implements javax.mail.Part.addHeader.

Add this value to the existing values for this header_name.
public void
addHeaderLine(String
the line to add
line
)

Overrides javax.mail.internet.MimeMessage.addHeaderLine.

Implements javax.mail.internet.MimePart.addHeaderLine.

Add a raw RFC822 header-line.
public Enumeration<String>
getAllHeaderLines()

Overrides javax.mail.internet.MimeMessage.getAllHeaderLines.

Implements javax.mail.internet.MimePart.getAllHeaderLines.

Get all header lines as an Enumeration of Strings.
public Enumeration<Header>

Returns:

array of header objects
getAllHeaders
()

Overrides javax.mail.internet.MimeMessage.getAllHeaders.

Implements javax.mail.Part.getAllHeaders.

Return all the headers from this Message as an enumeration of Header objects.
protected synchronized InputStream
getContentStream()

Overrides javax.mail.internet.MimeMessage.getContentStream.

Produce the raw bytes of the content.
public String[]

Returns:

array of headers
getHeader
(String
name of header
name
)

Overrides javax.mail.internet.MimeMessage.getHeader.

Implements javax.mail.Part.getHeader.

Get all the headers for this header_name.
public String

Returns:

the value fields for all headers with this name
getHeader
(String
the name of this header
name
,
String
delimiter between returned headers
delimiter
)

Overrides javax.mail.internet.MimeMessage.getHeader.

Implements javax.mail.internet.MimePart.getHeader.

Get all the headers for this header name, returned as a single String, with headers separated by the delimiter.
public Enumeration<String>
getMatchingHeaderLines(String[]
the headers to return
names
)

Overrides javax.mail.internet.MimeMessage.getMatchingHeaderLines.

Implements javax.mail.internet.MimePart.getMatchingHeaderLines.

Get matching header lines as an Enumeration of Strings.
public Enumeration<Header>
getMatchingHeaders(String[]
the headers to match
names
)

Overrides javax.mail.internet.MimeMessage.getMatchingHeaders.

Implements javax.mail.Part.getMatchingHeaders.

Return matching headers from this Message as an Enumeration of Header objects.
public InputStream

Returns:

the MIME format stream
getMimeStream
()

Implements com.sun.mail.util.ReadableMime.getMimeStream.

Return the MIME format stream corresponding to this message part.
public Enumeration<String>
getNonMatchingHeaderLines(String[]
the headers to not return
names
)

Overrides javax.mail.internet.MimeMessage.getNonMatchingHeaderLines.

Implements javax.mail.internet.MimePart.getNonMatchingHeaderLines.

Get non-matching header lines as an Enumeration of Strings.
public Enumeration<Header>
getNonMatchingHeaders(String[]
the headers to not match
names
)

Overrides javax.mail.internet.MimeMessage.getNonMatchingHeaders.

Implements javax.mail.Part.getNonMatchingHeaders.

Return non-matching headers from this Message as an Enumeration of Header objects.
private InputStream
getRawStream(boolean skipHeader)

Produce the raw bytes of the message.

public int

Returns:

size of content in bytes
getSize
()

Overrides javax.mail.internet.MimeMessage.getSize.

Implements javax.mail.Part.getSize.

Return the size of the content of this message in bytes.
public synchronized void
invalidate(boolean
invalidate the headers as well?
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.

private void
loadHeaders()

Load the headers for this message into the InternetHeaders object.

public void
removeHeader(String
the name of this header
name
)

Overrides javax.mail.internet.MimeMessage.removeHeader.

Implements javax.mail.Part.removeHeader.

Remove all headers with this name.
public void
saveChanges()

Overrides javax.mail.internet.MimeMessage.saveChanges.

POP3 message can't be changed.
public synchronized void
setFlags(Flags
the flags to be set
newFlags
,
boolean
the value to be set
set
)

Overrides javax.mail.internet.MimeMessage.setFlags.

Set the specified flags on this message to the specified value.
public void
setHeader(String
header name
name
,
String
header value
value
)

Overrides javax.mail.internet.MimeMessage.setHeader.

Implements javax.mail.Part.setHeader.

Set the value for this header_name.
public InputStream

Returns:

InputStream containing the message headers and n content lines
top
(int
number of lines of content to fetch
n
)

Fetch the header of the message and the first n lines of the raw content of the message.

public synchronized void
writeTo(OutputStream
the stream to write to
os
,
String[]
the headers to not include in the output
ignoreList
)

Overrides javax.mail.internet.MimeMessage.writeTo.

Output the message as an RFC 822 format stream, without specified headers.
Inherited from javax.mail.internet.MimeMessage:
addFromaddRecipientsaddRecipientscreateInternetHeaderscreateMimeMessagegetAllRecipientsgetContentgetContentIDgetContentLanguagegetContentMD5getContentTypegetDataHandlergetDescriptiongetDispositiongetEncodinggetFileNamegetFlagsgetFromgetInputStreamgetLineCountgetMessageIDgetRawInputStreamgetReceivedDategetRecipientsgetReplyTogetSendergetSentDategetSubjectisMimeTypeisSetparsereplyreplysetContentsetContentsetContentIDsetContentLanguagesetContentMD5setDataHandlersetDescriptionsetDescriptionsetDispositionsetFileNamesetFromsetFromsetFromsetRecipientssetRecipientssetReplyTosetSendersetSentDatesetSubjectsetSubjectsetTextsetTextsetTextupdateHeadersupdateMessageIDwriteTo

Field Detail

folderback to summary
private POP3Folder folder

Hides javax.mail.Message.folder.

hdrSizeback to summary
private int hdrSize
msgSizeback to summary
private int msgSize
rawDataback to summary
private SoftReference<InputStream> rawData
uidback to summary
pack-priv String uid
UNKNOWNback to summary
pack-priv static final String UNKNOWN

Constructor Detail

POP3Messageback to summary
public POP3Message(Folder folder, int msgno) throws MessagingException

Method Detail

addHeaderback to summary
public void addHeader(String name, String value) throws MessagingException

Overrides javax.mail.internet.MimeMessage.addHeader.

Implements javax.mail.Part.addHeader.

Add this value to the existing values for this header_name. Throws IllegalWriteException because POP3 messages are read-only.

Parameters
name:String

header name

value:String

header value

Annotations
@Override
Exceptions
MessagingException:

Doc from javax.mail.internet.MimeMessage.addHeader.

for other failures

IllegalWriteException:
because the underlying implementation does not support modification
IllegalStateException:
if this message is obtained from a READ_ONLY folder.
See Also
javax.mail.internet.MimeUtility
addHeaderLineback to summary
public void addHeaderLine(String line) throws MessagingException

Overrides javax.mail.internet.MimeMessage.addHeaderLine.

Implements javax.mail.internet.MimePart.addHeaderLine.

Add a raw RFC822 header-line. Throws IllegalWriteException because POP3 messages are read-only.

Parameters
line:String

Doc from javax.mail.internet.MimePart.addHeaderLine.

the line to add

Annotations
@Override
Exceptions
MessagingException:

Doc from javax.mail.internet.MimeMessage.addHeaderLine.

for other failures

IllegalWriteException:
because the underlying implementation does not support modification
IllegalStateException:
if this message is obtained from a READ_ONLY folder.
getAllHeaderLinesback to summary
public Enumeration<String> getAllHeaderLines() throws MessagingException

Overrides javax.mail.internet.MimeMessage.getAllHeaderLines.

Implements javax.mail.internet.MimePart.getAllHeaderLines.

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.

Returns:Enumeration<String>

Doc from javax.mail.internet.MimePart.getAllHeaderLines.

an Enumeration of Strings

Annotations
@Override
Exceptions
MessagingException:
for failures
getAllHeadersback to summary
public Enumeration<Header> getAllHeaders() throws MessagingException

Overrides javax.mail.internet.MimeMessage.getAllHeaders.

Implements javax.mail.Part.getAllHeaders.

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.

Returns:Enumeration<Header>

array of header objects

Annotations
@Override
Exceptions
MessagingException:
for failures
See Also
javax.mail.internet.MimeUtility
getContentStreamback to summary
protected synchronized InputStream getContentStream() throws MessagingException

Overrides javax.mail.internet.MimeMessage.getContentStream.

Produce the raw bytes of the content. The data is fetched using the POP3 RETR command.

Returns:InputStream

Doc from javax.mail.internet.MimeMessage.getContentStream.

an InputStream containing the raw bytes

Annotations
@Override
Exceptions
MessagingException:

Doc from javax.mail.internet.MimeMessage.getContentStream.

for failures

See Also
contentStream
getHeaderback to summary
public String[] getHeader(String name) throws MessagingException

Overrides javax.mail.internet.MimeMessage.getHeader.

Implements javax.mail.Part.getHeader.

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.

Parameters
name:String

name of header

Returns:String[]

array of headers

Annotations
@Override
Exceptions
MessagingException:
for failures
See Also
javax.mail.internet.MimeUtility
getHeaderback to summary
public String getHeader(String name, String delimiter) throws MessagingException

Overrides javax.mail.internet.MimeMessage.getHeader.

Implements javax.mail.internet.MimePart.getHeader.

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.

Parameters
name:String

the name of this header

delimiter:String

delimiter between returned headers

Returns:String

the value fields for all headers with this name

Annotations
@Override
Exceptions
MessagingException:
for failures
getMatchingHeaderLinesback to summary
public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException

Overrides javax.mail.internet.MimeMessage.getMatchingHeaderLines.

Implements javax.mail.internet.MimePart.getMatchingHeaderLines.

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.

Parameters
names:String[]

Doc from javax.mail.internet.MimePart.getMatchingHeaderLines.

the headers to return

Returns:Enumeration<String>

Doc from javax.mail.internet.MimePart.getMatchingHeaderLines.

an Enumeration of Strings

Annotations
@Override
Exceptions
MessagingException:
for failures
getMatchingHeadersback to summary
public Enumeration<Header> getMatchingHeaders(String[] names) throws MessagingException

Overrides javax.mail.internet.MimeMessage.getMatchingHeaders.

Implements javax.mail.Part.getMatchingHeaders.

Return matching headers from this Message as an Enumeration of Header objects.

Parameters
names:String[]

Doc from javax.mail.Part.getMatchingHeaders.

the headers to match

Returns:Enumeration<Header>

Doc from javax.mail.Part.getMatchingHeaders.

enumeration of Header objects

Annotations
@Override
Exceptions
MessagingException:
for failures
getMimeStreamback to summary
public InputStream getMimeStream() throws MessagingException

Implements com.sun.mail.util.ReadableMime.getMimeStream.

Return the MIME format stream corresponding to this message part.

Returns:InputStream

the MIME format stream

Annotations
@Override
Exceptions
MessagingException:

Doc from com.sun.mail.util.ReadableMime.getMimeStream.

for failures

Since
JavaMail 1.4.5
getNonMatchingHeaderLinesback to summary
public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException

Overrides javax.mail.internet.MimeMessage.getNonMatchingHeaderLines.

Implements javax.mail.internet.MimePart.getNonMatchingHeaderLines.

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.

Parameters
names:String[]

Doc from javax.mail.internet.MimePart.getNonMatchingHeaderLines.

the headers to not return

Returns:Enumeration<String>

Doc from javax.mail.internet.MimePart.getNonMatchingHeaderLines.

an Enumeration of Strings

Annotations
@Override
Exceptions
MessagingException:
for failures
getNonMatchingHeadersback to summary
public Enumeration<Header> getNonMatchingHeaders(String[] names) throws MessagingException

Overrides javax.mail.internet.MimeMessage.getNonMatchingHeaders.

Implements javax.mail.Part.getNonMatchingHeaders.

Return non-matching headers from this Message as an Enumeration of Header objects.

Parameters
names:String[]

Doc from javax.mail.Part.getNonMatchingHeaders.

the headers to not match

Returns:Enumeration<Header>

Doc from javax.mail.Part.getNonMatchingHeaders.

enumeration of Header objects

Annotations
@Override
Exceptions
MessagingException:
for failures
getRawStreamback to summary
private InputStream getRawStream(boolean skipHeader) throws MessagingException

Produce the raw bytes of the message. The data is fetched using the POP3 RETR command. If skipHeader is true, just the content is returned.

getSizeback to summary
public int getSize() throws MessagingException

Overrides javax.mail.internet.MimeMessage.getSize.

Implements javax.mail.Part.getSize.

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.

Returns:int

size of content in bytes

Annotations
@Override
Exceptions
MessagingException:
for failures
invalidateback to summary
public synchronized 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:boolean

invalidate the headers as well?

loadHeadersback to summary
private void loadHeaders() throws MessagingException

Load the headers for this message into the InternetHeaders object. The headers are fetched using the POP3 TOP command.

removeHeaderback to summary
public void removeHeader(String name) throws MessagingException

Overrides javax.mail.internet.MimeMessage.removeHeader.

Implements javax.mail.Part.removeHeader.

Remove all headers with this name. Throws IllegalWriteException because POP3 messages are read-only.

Parameters
name:String

Doc from javax.mail.Part.removeHeader.

the name of this header

Annotations
@Override
Exceptions
MessagingException:

Doc from javax.mail.internet.MimeMessage.removeHeader.

for other failures

IllegalWriteException:
because the underlying implementation does not support modification
IllegalStateException:
if this message is obtained from a READ_ONLY folder.
saveChangesback to summary
public void saveChanges() throws MessagingException

Overrides javax.mail.internet.MimeMessage.saveChanges.

POP3 message can't be changed. This method throws IllegalWriteException.

Annotations
@Override
Exceptions
MessagingException:

Doc from javax.mail.internet.MimeMessage.saveChanges.

for other failures

IllegalWriteException:
because the underlying implementation does not support modification
setFlagsback to summary
public synchronized void setFlags(Flags newFlags, boolean set) throws MessagingException

Overrides javax.mail.internet.MimeMessage.setFlags.

Set the specified flags on this message to the specified value.

Parameters
newFlags:Flags

the flags to be set

set:boolean

the value to be set

Annotations
@Override
Exceptions
MessagingException:

Doc from javax.mail.internet.MimeMessage.setFlags.

for other failures

setHeaderback to summary
public void setHeader(String name, String value) throws MessagingException

Overrides javax.mail.internet.MimeMessage.setHeader.

Implements javax.mail.Part.setHeader.

Set the value for this header_name. Throws IllegalWriteException because POP3 messages are read-only.

Parameters
name:String

header name

value:String

header value

Annotations
@Override
Exceptions
MessagingException:
for other failures
IllegalWriteException:
because the underlying implementation does not support modification
IllegalStateException:
if this message is obtained from a READ_ONLY folder.
See Also
javax.mail.internet.MimeUtility
topback to summary
public InputStream top(int n) throws 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:int

number of lines of content to fetch

Returns:InputStream

InputStream containing the message headers and n content lines

Exceptions
MessagingException:
for failures
writeToback to summary
public synchronized void writeTo(OutputStream os, String[] ignoreList) throws IOException, MessagingException

Overrides javax.mail.internet.MimeMessage.writeTo.

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.

Parameters
os:OutputStream

Doc from javax.mail.internet.MimeMessage.writeTo.

the stream to write to

ignoreList:String[]

Doc from javax.mail.internet.MimeMessage.writeTo.

the headers to not include in the output

Annotations
@Override
Exceptions
IOException:
if an error occurs writing to the stream or if an error is generated by the javax.activation layer.
MessagingException:
for other failures
See Also
javax.activation.DataHandler#writeTo