|
xmlBlaster 2.1.0 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.xmlBlaster.util.protocol.email.EmailData
public class EmailData
Value object holding the most commonly used email fields.
Add/access/delete attachments is not simultaneous possible (not thread save)
Example:
From: demo@localhost
To: xmlBlaster@localhost
Subject: Hello World
attachement {
fileName: messageId.mid
content: abcd 5
}
attachement {
fileName: xmlBlaster.xbf
content: [the binary xmlBlaster format similar to that used with SOCKET]
}
Note on max. header length from RFC 2822:
"There are two limits that this standard places on the number of characters in a line. Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF."
http://www.faqs.org/rfcs/rfc2822.html| Field Summary | |
|---|---|
protected java.util.ArrayList |
attachments
Containts AttachmentHolder instances |
protected javax.mail.internet.InternetAddress[] |
bcc
|
protected javax.mail.internet.InternetAddress[] |
cc
|
protected java.lang.String |
content
|
protected java.lang.String |
encoding
|
static java.lang.String |
EXPIRES_HEADER_RFC2156
Expiry Date Indication Supported as new RFC 822 header (Expires:). |
static java.lang.String |
EXPIRES_TAG
|
protected java.sql.Timestamp |
expiryTime
|
protected javax.mail.internet.InternetAddress |
from
|
private static java.util.logging.Logger |
log
|
static java.lang.String |
MESSAGEID_EXTENSION
Holding the relevant email meta info like a request identifier |
static java.lang.String |
MESSAGEID_TAG
The root tag <messageId> |
private java.lang.String |
messageIdFileName
|
static java.lang.String |
METHODNAME_TAG
|
protected javax.mail.internet.InternetAddress[] |
recipients
|
protected javax.mail.internet.InternetAddress[] |
replyTo
|
protected java.lang.String |
requestId
Contains requestId * |
static java.lang.String |
REQUESTID_TAG
|
protected boolean |
requestIdFromSentDate
Remember if we got an explicit requestId or if we extracted it from the sentDate |
boolean |
sendAsync
|
protected boolean |
sendContentAsText
|
protected java.util.Date |
sentDate
The origination date from the email header, this field exists always for incoming emails |
protected java.lang.String |
sessionId
Contains sessionId * |
static java.lang.String |
SESSIONID_TAG
|
protected java.lang.String |
subject
|
| Constructor Summary | |
|---|---|
EmailData(javax.mail.internet.InternetAddress recipient,
javax.mail.internet.InternetAddress from,
java.lang.String subject)
|
|
EmailData(java.lang.String[] recipients,
java.lang.String from,
java.lang.String subject,
java.lang.String content)
Create a simple message for any number of recipients. |
|
EmailData(java.lang.String recipient,
java.lang.String from,
java.lang.String subject,
java.lang.String content)
Create a simple message. |
|
| Method Summary | |
|---|---|
void |
addAttachment(AttachmentHolder attachmentHolder)
|
java.lang.String |
createMessageId(MethodName methodName,
java.sql.Timestamp expiryTimestamp)
Use together with extractMessageId(EmailData messageData, String tag). |
static java.lang.String |
createMessageId(java.lang.String sessionId,
java.lang.String requestId,
MethodName methodName,
java.sql.Timestamp expiryTimestamp)
If any of the params is null no markup for this param is added. |
java.lang.String |
extractMessageId(java.lang.String tag,
java.lang.String msgIdFileName)
Find the given tag in the messageId of this message. |
java.lang.String[] |
getAllRecipients()
|
AttachmentHolder |
getAttachment(java.lang.String fileName)
|
AttachmentHolder[] |
getAttachments()
Access all attachements. |
javax.mail.internet.InternetAddress[] |
getBcc()
|
javax.mail.internet.InternetAddress[] |
getCc()
|
java.lang.String |
getContent()
|
byte[] |
getContentByExtension(java.lang.String extension)
Lookup attachment. |
java.lang.String |
getEncoding()
Encoding (charset) for example "UTF-8". |
java.sql.Timestamp |
getExpiryTime()
Is transported in the email header "Expires: " |
java.lang.String |
getFileNameList()
Comma separated value list of all attachment file names (unquoted) for logging. |
java.lang.String |
getFrom()
|
javax.mail.internet.InternetAddress |
getFromAddress()
|
java.lang.String |
getMessageId(java.lang.String msgIdFileName)
Find the messageId of this message. |
AttachmentHolder |
getMessageIdAttachment(java.lang.String msgIdFileName)
Find the messageId of this message. |
AttachmentHolder |
getMsgUnitAttachment()
Lookup attachment. |
java.lang.String |
getRecipientsList()
Comma separated value list of all recipient email addresses for logging. |
java.lang.String |
getRequestId(java.lang.String msgIdFileName)
The requestId from the <messageId><requestId>123456</requestId></messageId> markup. |
java.util.Date |
getSentDate()
Returns the value of the RFC 822 "Date" field. |
java.lang.String |
getSessionId(java.lang.String msgIdFileName)
The emails session id. |
java.lang.String |
getSubject()
|
javax.mail.internet.InternetAddress[] |
getToAddresses()
|
java.lang.String |
getToAddressesStr()
|
boolean |
isExpired(java.lang.String msgIdFileName)
Check if an email can be deleted. |
boolean |
isMessageIdAttachment(AttachmentHolder holder,
java.lang.String msgIdFileName)
|
boolean |
isMsgUnitAttachment(AttachmentHolder holder)
|
boolean |
isRequestIdFromSentDate()
|
boolean |
isSendAsync()
|
boolean |
isSendContentAsText()
|
static void |
main(java.lang.String[] args)
For manual tests. |
private static int |
parseTag(int startIndex,
java.lang.String token,
java.lang.String xml,
java.lang.StringBuffer value)
Internal helper for parsing. |
private static int |
parseTag(int startIndex,
java.lang.String startToken,
java.lang.String endToken,
java.lang.String xml,
java.lang.StringBuffer value)
Internal helper for parsing. |
static EmailData |
parseXml(java.lang.String xml)
Hand made parser to parse xml, much faster than SAX. |
void |
setAttachments(java.util.ArrayList attachmentHolders)
|
void |
setBcc(java.lang.String bcc)
|
void |
setCc(java.lang.String cc)
|
void |
setContent(java.lang.String content)
|
void |
setEncoding(java.lang.String aEncoding)
|
void |
setExpiryTime(java.sql.Timestamp expiryTime)
Set an absolute time in future when this email is regarded as obsolete. |
void |
setMessageIdFileName(java.lang.String name)
|
void |
setReplyTo(javax.mail.internet.InternetAddress[] replyTo)
Currenlty not supported! |
void |
setRequestId(java.lang.String requestId)
|
void |
setRequestIdFromSentDate(boolean requestIdFromSentDate)
|
void |
setSendAsync(boolean sendAsync)
Set to true if you want to send the mail over a producer/consumer pattern from another thread. |
void |
setSendContentAsText(boolean sendContentAsText)
|
void |
setSentDate(java.util.Date sentDate)
|
void |
setSessionId(java.lang.String sessionId)
|
void |
setSubject(java.lang.String subject)
|
private javax.mail.internet.InternetAddress |
toInternetAddress(java.lang.String address)
|
java.lang.String |
toString()
|
java.lang.String |
toXml(boolean readable)
Dumps message to xml. |
java.lang.String |
toXml(boolean readable,
boolean dumpAttachmentData)
Dumps message to xml. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
private static java.util.logging.Logger log
protected java.lang.String encoding
protected javax.mail.internet.InternetAddress[] recipients
protected javax.mail.internet.InternetAddress[] cc
protected javax.mail.internet.InternetAddress[] bcc
protected javax.mail.internet.InternetAddress from
protected java.lang.String subject
protected boolean sendContentAsText
protected java.lang.String content
protected java.util.ArrayList attachments
protected java.lang.String sessionId
protected java.lang.String requestId
protected java.sql.Timestamp expiryTime
protected java.util.Date sentDate
protected boolean requestIdFromSentDate
protected javax.mail.internet.InternetAddress[] replyTo
public static final java.lang.String MESSAGEID_TAG
public static final java.lang.String METHODNAME_TAG
public static final java.lang.String REQUESTID_TAG
public static final java.lang.String SESSIONID_TAG
public static final java.lang.String EXPIRES_TAG
public static final java.lang.String EXPIRES_HEADER_RFC2156
http://www.faqs.org/rfcs/rfc2156.html,
Constant Field Valuespublic static final java.lang.String MESSAGEID_EXTENSION
public boolean sendAsync
private java.lang.String messageIdFileName
| Constructor Detail |
|---|
public EmailData(java.lang.String recipient,
java.lang.String from,
java.lang.String subject,
java.lang.String content)
recipient - For example "jack@gmx.net" or "jack@gmx.net,jeff@gmx.net"from - For example "sue@gmx.net"subject - For example "Hi"content - For example "Best regards, Sue"
public EmailData(java.lang.String[] recipients,
java.lang.String from,
java.lang.String subject,
java.lang.String content)
EmailData(String, String, String, String)
public EmailData(javax.mail.internet.InternetAddress recipient,
javax.mail.internet.InternetAddress from,
java.lang.String subject)
| Method Detail |
|---|
public boolean isSendAsync()
public void setSendAsync(boolean sendAsync)
sendAsync - the sendAsync to set, defaults to falsepublic void setMessageIdFileName(java.lang.String name)
private javax.mail.internet.InternetAddress toInternetAddress(java.lang.String address)
throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic void addAttachment(AttachmentHolder attachmentHolder)
public void setAttachments(java.util.ArrayList attachmentHolders)
public AttachmentHolder[] getAttachments()
public byte[] getContentByExtension(java.lang.String extension)
extension - For example XbfParser.XBFORMAT_EXTENSION=".xbf"
public AttachmentHolder getMsgUnitAttachment()
extension - For example XbfParser.XBFORMAT_EXTENSION=".xbf"extensionZ - For example XbfParser.XBFORMAT_ZLIB_EXTENSION=".xbfz"extensionBackup - For example ".xml"
public boolean isMsgUnitAttachment(AttachmentHolder holder)
public java.lang.String getFileNameList()
public java.lang.String getRecipientsList()
public void setEncoding(java.lang.String aEncoding)
getEncoding()public java.lang.String getEncoding()
Content-Type: text/plain; charset=UTF-8"ISO-8859-1" is good enough for German and English
public java.lang.String[] getAllRecipients()
public java.lang.String getFrom()
public javax.mail.internet.InternetAddress getFromAddress()
public javax.mail.internet.InternetAddress[] getToAddresses()
public java.lang.String getToAddressesStr()
public java.lang.String getSubject()
public void setSubject(java.lang.String subject)
subject - The subject to set.public java.lang.String getContent()
public AttachmentHolder getAttachment(java.lang.String fileName)
public java.lang.String toXml(boolean readable)
readable - If true '\0' are replaced by '*'
public java.lang.String toXml(boolean readable,
boolean dumpAttachmentData)
readable - If true '\0' are replaced by '*'dumpAttachmentData - set to false to avoid dumping huge attachment binaries
private static int parseTag(int startIndex,
java.lang.String startToken,
java.lang.String endToken,
java.lang.String xml,
java.lang.StringBuffer value)
startIndex - >=
0value - The wanted text between the tags
private static int parseTag(int startIndex,
java.lang.String token,
java.lang.String xml,
java.lang.StringBuffer value)
startIndex - >=
0token - The tag name without "<", ">"value - The wanted text between the tags
public static EmailData parseXml(java.lang.String xml)
public java.lang.String getRequestId(java.lang.String msgIdFileName)
public void setRequestId(java.lang.String requestId)
requestId - The requestId to set.public java.lang.String getSessionId(java.lang.String msgIdFileName)
public void setSessionId(java.lang.String sessionId)
sessionId - The sessionId to set.public java.lang.String getMessageId(java.lang.String msgIdFileName)
public AttachmentHolder getMessageIdAttachment(java.lang.String msgIdFileName)
public boolean isMessageIdAttachment(AttachmentHolder holder,
java.lang.String msgIdFileName)
public java.lang.String extractMessageId(java.lang.String tag,
java.lang.String msgIdFileName)
tag - "requestId" or "sessionId" or "methodName"
public java.lang.String createMessageId(MethodName methodName,
java.sql.Timestamp expiryTimestamp)
methodName - Can be nullexpiryTimestamp - Can be null
public static java.lang.String createMessageId(java.lang.String sessionId,
java.lang.String requestId,
MethodName methodName,
java.sql.Timestamp expiryTimestamp)
methodName - Can be nullexpiryTimestamp - Can be null
public java.lang.String toString()
toString in class java.lang.Objectpublic void setContent(java.lang.String content)
public javax.mail.internet.InternetAddress[] getBcc()
public void setBcc(java.lang.String bcc)
bcc - The bcc to set.public javax.mail.internet.InternetAddress[] getCc()
public void setCc(java.lang.String cc)
cc - The cc to set.public boolean isExpired(java.lang.String msgIdFileName)
emailData - email to check
public java.sql.Timestamp getExpiryTime()
public void setExpiryTime(java.sql.Timestamp expiryTime)
expiryTime - The expiryTime to set.public java.util.Date getSentDate()
According to RC 822 this field exists always for incoming emails.
public void setSentDate(java.util.Date sentDate)
sentDate - The sentDate to set.public void setReplyTo(javax.mail.internet.InternetAddress[] replyTo)
replyTo - The address to set.public boolean isRequestIdFromSentDate()
public void setRequestIdFromSentDate(boolean requestIdFromSentDate)
requestIdFromSentDate - The requestIdFromSentDate to set.public static void main(java.lang.String[] args)
public boolean isSendContentAsText()
public void setSendContentAsText(boolean sendContentAsText)
|
xmlBlaster 2.1.0 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||