public class MimeMessageWrapper extends javax.mail.internet.MimeMessage implements Disposable
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
bodyModified
This is false until we parse the message
|
protected boolean |
headersModified
This is false until we parse the message
|
protected boolean |
messageParsed
This is false until we parse the message
|
protected MimeMessageSource |
source
Can provide an input stream to the data
|
static String |
USE_MEMORY_COPY
System property which tells JAMES if it should copy a message in memory
or via a temporary file.
|
| Constructor and Description |
|---|
MimeMessageWrapper(javax.mail.internet.MimeMessage original) |
MimeMessageWrapper(MimeMessageSource source)
A constructor that instantiates a MimeMessageWrapper based on a
MimeMessageSource
|
MimeMessageWrapper(javax.mail.Session session,
MimeMessageSource source)
A constructor that instantiates a MimeMessageWrapper based on a
MimeMessageSource
|
| Modifier and Type | Method and Description |
|---|---|
void |
addHeader(String name,
String value) |
void |
addHeaderLine(String line) |
protected javax.mail.internet.InternetHeaders |
createInternetHeaders(InputStream is)
If we already parsed the headers then we simply return the updated ones.
|
void |
dispose()
Dispose the object
|
Enumeration |
getAllHeaderLines() |
Enumeration |
getAllHeaders() |
protected InputStream |
getContentStream() |
String[] |
getHeader(String name)
We override all the "headers" access methods to be sure that we loaded
the headers
|
String |
getHeader(String name,
String delimiter) |
int |
getLineCount()
Corrects JavaMail 1.1 version which always returns -1.
|
Enumeration |
getMatchingHeaderLines(String[] names) |
Enumeration |
getMatchingHeaders(String[] names) |
InputStream |
getMessageInputStream()
Return an
InputStream which holds the full content of the
message. |
long |
getMessageSize()
Returns size of message, ie headers and content
|
Enumeration |
getNonMatchingHeaderLines(String[] names) |
Enumeration |
getNonMatchingHeaders(String[] names) |
InputStream |
getRawInputStream() |
int |
getSize()
This is the MimeMessage implementation - this should return ONLY the
body, not the entire message (should not count headers).
|
String |
getSourceId()
Returns the source ID of the MimeMessageSource that is supplying this
with data.
|
boolean |
isBodyModified()
Get whether the body of the message has been modified
|
boolean |
isHeaderModified()
Get whether the header of the message has been modified
|
boolean |
isModified()
Get whether the message has been modified.
|
protected void |
loadHeaders()
Load the message headers from the internal source.
|
void |
loadMessage()
Load the complete MimeMessage from the internal source.
|
protected void |
parse(InputStream is) |
void |
removeHeader(String name) |
void |
setDataHandler(DataHandler arg0)
The message is changed when working with headers and when altering the
content.
|
void |
setHeader(String name,
String value) |
protected void |
updateMessageID()
Overrides default javamail behaviour by not altering the Message-ID by
default, see JAMES-875 and
JAMES-1010
|
void |
writeTo(OutputStream os)
Rewritten for optimization purposes
|
void |
writeTo(OutputStream headerOs,
OutputStream bodyOs)
Write
|
void |
writeTo(OutputStream headerOs,
OutputStream bodyOs,
String[] ignoreList) |
void |
writeTo(OutputStream headerOs,
OutputStream bodyOs,
String[] ignoreList,
boolean preLoad) |
void |
writeTo(OutputStream os,
String[] ignoreList)
Rewritten for optimization purposes
|
addFrom, addRecipients, addRecipients, createMimeMessage, getAllRecipients, getContent, getContentID, getContentLanguage, getContentMD5, getContentType, getDataHandler, getDescription, getDisposition, getEncoding, getFileName, getFlags, getFrom, getInputStream, getMessageID, getReceivedDate, getRecipients, getReplyTo, getSender, getSentDate, getSubject, isMimeType, isSet, reply, saveChanges, setContent, setContent, setContentID, setContentLanguage, setContentMD5, setDescription, setDescription, setDisposition, setFileName, setFlags, setFrom, setFrom, setRecipients, setRecipients, setReplyTo, setSender, setSentDate, setSubject, setSubject, setText, setText, setText, updateHeaderspublic static final String USE_MEMORY_COPY
protected MimeMessageSource source
protected boolean messageParsed
protected boolean headersModified
protected boolean bodyModified
public MimeMessageWrapper(javax.mail.Session session,
MimeMessageSource source)
throws javax.mail.MessagingException
source - the MimeMessageSourcejavax.mail.MessagingExceptionpublic MimeMessageWrapper(MimeMessageSource source) throws javax.mail.MessagingException
source - the MimeMessageSourcejavax.mail.MessagingExceptionjavax.mail.MessagingExceptionpublic MimeMessageWrapper(javax.mail.internet.MimeMessage original)
throws javax.mail.MessagingException
javax.mail.MessagingExceptionprotected void updateMessageID()
throws javax.mail.MessagingException
updateMessageID in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionMimeMessage.updateMessageID()public String getSourceId()
MimeMessageSourceprotected void loadHeaders()
throws javax.mail.MessagingException
javax.mail.MessagingException - if an error is encountered while loading the headerspublic void loadMessage()
throws javax.mail.MessagingException
javax.mail.MessagingException - if an error is encountered while loading the messagepublic boolean isModified()
public boolean isBodyModified()
public boolean isHeaderModified()
public void writeTo(OutputStream os) throws IOException, javax.mail.MessagingException
writeTo in interface javax.mail.PartwriteTo in class javax.mail.internet.MimeMessageIOExceptionjavax.mail.MessagingExceptionpublic void writeTo(OutputStream os, String[] ignoreList) throws IOException, javax.mail.MessagingException
writeTo in class javax.mail.internet.MimeMessageIOExceptionjavax.mail.MessagingExceptionpublic void writeTo(OutputStream headerOs, OutputStream bodyOs) throws IOException, javax.mail.MessagingException
IOExceptionjavax.mail.MessagingExceptionpublic void writeTo(OutputStream headerOs, OutputStream bodyOs, String[] ignoreList) throws IOException, javax.mail.MessagingException
IOExceptionjavax.mail.MessagingExceptionpublic void writeTo(OutputStream headerOs, OutputStream bodyOs, String[] ignoreList, boolean preLoad) throws IOException, javax.mail.MessagingException
IOExceptionjavax.mail.MessagingExceptionpublic int getSize()
throws javax.mail.MessagingException
MimeMessage.saveChanges()getSize in interface javax.mail.PartgetSize in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic int getLineCount()
throws javax.mail.MessagingException
getLineCount in interface javax.mail.PartgetLineCount in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic long getMessageSize()
throws javax.mail.MessagingException
javax.mail.MessagingExceptionpublic String[] getHeader(String name) throws javax.mail.MessagingException
getHeader in interface javax.mail.PartgetHeader in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic String getHeader(String name, String delimiter) throws javax.mail.MessagingException
getHeader in interface javax.mail.internet.MimePartgetHeader in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic Enumeration getAllHeaders() throws javax.mail.MessagingException
getAllHeaders in interface javax.mail.PartgetAllHeaders in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic Enumeration getMatchingHeaders(String[] names) throws javax.mail.MessagingException
getMatchingHeaders in interface javax.mail.PartgetMatchingHeaders in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic Enumeration getNonMatchingHeaders(String[] names) throws javax.mail.MessagingException
getNonMatchingHeaders in interface javax.mail.PartgetNonMatchingHeaders in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic Enumeration getAllHeaderLines() throws javax.mail.MessagingException
getAllHeaderLines in interface javax.mail.internet.MimePartgetAllHeaderLines in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic Enumeration getMatchingHeaderLines(String[] names) throws javax.mail.MessagingException
getMatchingHeaderLines in interface javax.mail.internet.MimePartgetMatchingHeaderLines in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic Enumeration getNonMatchingHeaderLines(String[] names) throws javax.mail.MessagingException
getNonMatchingHeaderLines in interface javax.mail.internet.MimePartgetNonMatchingHeaderLines in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic void setHeader(String name, String value) throws javax.mail.MessagingException
setHeader in interface javax.mail.PartsetHeader in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic void addHeader(String name, String value) throws javax.mail.MessagingException
addHeader in interface javax.mail.PartaddHeader in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic void removeHeader(String name) throws javax.mail.MessagingException
removeHeader in interface javax.mail.PartremoveHeader in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic void addHeaderLine(String line) throws javax.mail.MessagingException
addHeaderLine in interface javax.mail.internet.MimePartaddHeaderLine in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionpublic void setDataHandler(DataHandler arg0) throws javax.mail.MessagingException
setDataHandler in interface javax.mail.PartsetDataHandler in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionPart.setDataHandler(javax.activation.DataHandler)public void dispose()
Disposabledispose in interface DisposableDisposable.dispose()protected void parse(InputStream is) throws javax.mail.MessagingException
parse in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionMimeMessage.parse(java.io.InputStream)protected javax.mail.internet.InternetHeaders createInternetHeaders(InputStream is) throws javax.mail.MessagingException
createInternetHeaders in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionMimeMessage.createInternetHeaders(java.io.InputStream)protected InputStream getContentStream() throws javax.mail.MessagingException
getContentStream in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionMimeMessage.getContentStream()public InputStream getRawInputStream() throws javax.mail.MessagingException
getRawInputStream in class javax.mail.internet.MimeMessagejavax.mail.MessagingExceptionMimeMessage.getRawInputStream()public InputStream getMessageInputStream() throws javax.mail.MessagingException
InputStream which holds the full content of the
message. This method tries to optimize this call as far as possible. This
stream contains the updated MimeMessage content if something was
changedjavax.mail.MessagingExceptionCopyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.