|
xmlBlaster 2.2.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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:} attachement { fileName: xmlBlaster.xbf content: [the binary xmlBlaster format similar to that used with SOCKET] } abcd 5
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<AttachmentHolder> |
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<AttachmentHolder> 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<AttachmentHolder> 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.IllegalArgumentException
public void addAttachment(AttachmentHolder attachmentHolder)
public void setAttachments(java.util.ArrayList<AttachmentHolder> 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 binariesprivate 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.Object
public 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.2.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |