Work With Outlook Storage

Work With Outlook Storage

Outlook Storage item can contain the following metadata:

dateThe time and date at which the Outlook Storage item was last modified.
email-senderThe value of “sender” field.
email-toThe value of “to” field.
subjectThe value of “subject” field.

Outlook Storage container consists of email documents (msg files).

Here are the steps to extract an email text from outlook storage:

  • Instantiate *Parser *object for the initial document;
  • Call* getContainer* method and obtain collection of document container item objects;
  • Check if collection isn’t null (container extraction is supported for the document);
  • Iterate through the collection and obtain Parser object to extract a text.

The following example shows how to extract a text from emails in outlook storage:

// Create an instance of Parser class
try (Parser parser = new Parser(Constants.SampleOutlook)) {
    // Extract attachments from the container
    Iterable<ContainerItem> attachments = parser.getContainer();
    // Check if container extraction is supported
    if (attachments == null) {
        System.out.println("Container extraction isn't supported");
    // Iterate over zip entities
    for (ContainerItem item : attachments) {
        // Print the file path
        // Print metadata
        for (MetadataItem metadata : item.getMetadata()) {
            System.out.println(String.format("%s: %s", metadata.getName(), metadata.getValue()));
        try {
            // Create Parser object for the zip entity content
            try (Parser attachmentParser = item.openParser()) {
                // Extract an zip entity text
                try (TextReader reader = attachmentParser.getText()) {
                    System.out.println(reader == null ? "No text" : reader.readToEnd());
        } catch (UnsupportedDocumentFormatException ex) {
            System.out.println("Isn't supported.");