Merge pull request #1985 from BasisOlivers/aut-1901

Added headers to email data
This commit is contained in:
Richard Cordovano 2016-02-25 10:27:57 -05:00
commit d86be91b2d
2 changed files with 16 additions and 4 deletions

View File

@ -51,6 +51,7 @@ import org.apache.james.mime4j.dom.field.ContentTypeField;
import org.apache.james.mime4j.mboxiterator.CharBufferWrapper; import org.apache.james.mime4j.mboxiterator.CharBufferWrapper;
import org.apache.james.mime4j.mboxiterator.MboxIterator; import org.apache.james.mime4j.mboxiterator.MboxIterator;
import org.apache.james.mime4j.message.DefaultMessageBuilder; import org.apache.james.mime4j.message.DefaultMessageBuilder;
import org.apache.james.mime4j.stream.Field;
import org.apache.james.mime4j.stream.MimeConfig; import org.apache.james.mime4j.stream.MimeConfig;
import org.apache.tika.parser.txt.CharsetDetector; import org.apache.tika.parser.txt.CharsetDetector;
import org.apache.tika.parser.txt.CharsetMatch; import org.apache.tika.parser.txt.CharsetMatch;
@ -179,7 +180,7 @@ class MboxParser {
if (msg.isMultipart()) { if (msg.isMultipart()) {
handleMultipart(email, (Multipart) msg.getBody(), fileID); handleMultipart(email, (Multipart) msg.getBody(), fileID);
} else { } else {
handleTextBody(email, (TextBody) msg.getBody(), msg.getMimeType()); handleTextBody(email, (TextBody) msg.getBody(), msg.getMimeType(), msg.getHeader().getFields());
} }
return email; return email;
@ -204,7 +205,7 @@ class MboxParser {
handleAttachment(email, e, fileID, index); handleAttachment(email, e, fileID, index);
} else if (e.getMimeType().equals(HTML_TYPE) } else if (e.getMimeType().equals(HTML_TYPE)
|| e.getMimeType().equals(ContentTypeField.TYPE_TEXT_PLAIN)) { || e.getMimeType().equals(ContentTypeField.TYPE_TEXT_PLAIN)) {
handleTextBody(email, (TextBody) e.getBody(), e.getMimeType()); handleTextBody(email, (TextBody) e.getBody(), e.getMimeType(), e.getHeader().getFields());
} else { } else {
// Ignore other types. // Ignore other types.
} }
@ -221,7 +222,7 @@ class MboxParser {
* @param tb * @param tb
* @param type The Mime type of the body. * @param type The Mime type of the body.
*/ */
private void handleTextBody(EmailMessage email, TextBody tb, String type) { private void handleTextBody(EmailMessage email, TextBody tb, String type, List<Field> fields) {
BufferedReader r; BufferedReader r;
try { try {
r = new BufferedReader(tb.getReader()); r = new BufferedReader(tb.getReader());
@ -230,6 +231,12 @@ class MboxParser {
while ((line = r.readLine()) != null) { while ((line = r.readLine()) != null) {
bodyString.append(line).append("\n"); bodyString.append(line).append("\n");
} }
bodyString.append("\n-----HEADERS-----\n");
for(Field field: fields) {
String nextLine = field.getName() + ": " + field.getBody();
bodyString.append("\n").append(nextLine);
}
bodyString.append("\n\n---END HEADERS--\n\n");
switch (type) { switch (type) {
case ContentTypeField.TYPE_TEXT_PLAIN: case ContentTypeField.TYPE_TEXT_PLAIN:

View File

@ -172,7 +172,12 @@ class PstParser {
email.setBcc(msg.getDisplayBCC()); email.setBcc(msg.getDisplayBCC());
email.setSender(getSender(msg.getSenderName(), msg.getSenderEmailAddress())); email.setSender(getSender(msg.getSenderName(), msg.getSenderEmailAddress()));
email.setSentDate(msg.getMessageDeliveryTime()); email.setSentDate(msg.getMessageDeliveryTime());
if(msg.getTransportMessageHeaders().isEmpty()) {
email.setTextBody(msg.getBody()); email.setTextBody(msg.getBody());
} else {
email.setTextBody(msg.getBody() + "\n-----HEADERS-----\n\n" + msg.getTransportMessageHeaders() + "\n\n---END HEADERS--\n\n");
}
email.setHtmlBody(msg.getBodyHTML()); email.setHtmlBody(msg.getBodyHTML());
String rtf = ""; String rtf = "";
try { try {