diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java index 69255cf7d8..56aea2f826 100755 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/MboxParser.java @@ -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.MboxIterator; import org.apache.james.mime4j.message.DefaultMessageBuilder; +import org.apache.james.mime4j.stream.Field; import org.apache.james.mime4j.stream.MimeConfig; import org.apache.tika.parser.txt.CharsetDetector; import org.apache.tika.parser.txt.CharsetMatch; @@ -179,7 +180,7 @@ class MboxParser { if (msg.isMultipart()) { handleMultipart(email, (Multipart) msg.getBody(), fileID); } else { - handleTextBody(email, (TextBody) msg.getBody(), msg.getMimeType()); + handleTextBody(email, (TextBody) msg.getBody(), msg.getMimeType(), msg.getHeader().getFields()); } return email; @@ -204,7 +205,7 @@ class MboxParser { handleAttachment(email, e, fileID, index); } else if (e.getMimeType().equals(HTML_TYPE) || 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 { // Ignore other types. } @@ -221,7 +222,7 @@ class MboxParser { * @param tb * @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 fields) { BufferedReader r; try { r = new BufferedReader(tb.getReader()); @@ -230,6 +231,12 @@ class MboxParser { while ((line = r.readLine()) != null) { 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) { case ContentTypeField.TYPE_TEXT_PLAIN: diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java index 800e283b55..7958464a22 100755 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/PstParser.java @@ -172,7 +172,12 @@ class PstParser { email.setBcc(msg.getDisplayBCC()); email.setSender(getSender(msg.getSenderName(), msg.getSenderEmailAddress())); email.setSentDate(msg.getMessageDeliveryTime()); - email.setTextBody(msg.getBody()); + if(msg.getTransportMessageHeaders().isEmpty()) { + 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()); String rtf = ""; try {