Giter Club home page Giter Club logo

xstreader's People

Contributors

dijji avatar flywire avatar halueda avatar hughbe avatar iluvadev avatar just1fi3d avatar stephenjannin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xstreader's Issues

Feature Request: Open/Search Multiple Files

Summary: It would be beneficial to be able to have multiple files open and searchable in XstReader at the same time.

Rationale: I rotate my PST files on a time basis (a new PST file every 6 months). The intent is to keep the files small (~2GB) for quicker indexing and loading. (Side-note, this might be a false belief?) It would be easier, if I don't know when an Outlook item is from, to be able to load all my PSTs into XstReader at once and have an integrated search, rather than loading and searching PSTs one at a time.

Sender Name not showing for Office 2016 OST

Thank you for a great effort on this.
Stumbled upon this where if an ost was created by Outlook 2016 the FromTo value is Null the for each of the "m in ms".
I tried to debug it but could not get to it.. if you have any pointers I'll can try to get to it.

Support for exporting to EML w/attachments

Related to #21 , I suggest EML format could be useful because it natively supports attachments within the EML file. I am currently in the process of combining old e-mail archives (all previously exported to EML) with what will be new additions to the archives. I think this tool is great, but having attachments in the EML is definitely handy and easier to manage from an archiving purpose.

It is extremely uncomfortable to catch XST-specific exceptions.

I suggest to add a new exception class like this:

public class XstException : Exception
{
        public XstException(string message) : base(message)
        {
        }
}

And then replace all "throw new Exception(...)" and "throw new ArgumentException(...)" to "throw new XstException(...)" in all *.cs files in the project.

"Sub-nodes of sub-nodes not yet implemented" crash in pst file with embedded message attachment

See https://filebin.net/owmuw1r7tdum67a6 for Outlook.pst file (GitHub doesn't allow me to upload pst files)

Folder: Root>"Top of Personal Folders">"Inbox"
Message: subject of "this message contains embedded MSG"
Attachment: index 0
Property: PidTagAttachDataBinary

This property has dwValueHnid of 128 which is of type HID.

Reading the data we get nid of 2097572, which is of type NORMAL_MESSAGE with index 65549.

The discovered node has a dataBid of 8256 and subDataBid of 8250

This causes a crash in https://github.com/Dijji/XstReader/blob/master/NDB.cs#L104

        // Read raw data, accessed via a sub node
        // If it has a multiblock structure, return all of the blocks' contents concatenated
        public byte[] ReadSubNodeDataBlock(FileStream fs, BTree<Node> subNodeTree, NID nid)
        {
            if (!nid.HasValue)
                return null;
            var n = LookupSubNode(subNodeTree, nid);
            if (n == null)
                throw new XstException("Node not found in sub node tree");
            if (n.SubDataBid != 0)
                throw new XstException("Sub-nodes of sub-nodes not yet implemented");
            return ReadDataBlock(fs, n.DataBid);
        }

Search

Nice tool, works great. Is there a function to search for specific messages?

thanks,

Ist Reader quits without any message

Hey folks,

when I want to open the incoming-message folder, the Xst Reader quits without any message. The message folder contains over 60.000 items. May be this could be the problem? Please give me a reply if you need more information.

Alex

xst_reader_Screenshoot

Email encryption

Any plans to support email decryption if the correct certificate is in the certificate store? Similar to how out look does this.

Output to CSV

Rather than attempting to create an entire PST file, which as mentioned in #1 is a lot of work; Just output to a CSV. Most* email clients are able to take advantage of CSV importing / exporting. The problem is we just can't open a lot of our OST/PST files which XstReader is able to pull data from.

Can open password protected .pst files with out supplying password.

I appreciate that this is not necessarily an issue for XstReader, as the implication is that .pst files are not encrypted and the password is only used to restrict opening in Outlook, bu please can you confirm that?

P.S. there was no other method of contacting you that I could find.

Build Instructions

Can you provide brief build instructions somewhere? It would be preferable to include links to resources/software. Non-programmers can compile a program to access pre-release code features and even tweak a few things here and there.

Feature Request: Bulk import

Firstly, thank you very much for your effort, XstReader is really a nice software.
Can you add a simple option for adding a bunch of pst & ost file in a bulk way? For exemple add a directory which contains several pst and ost files in subdirectory. It would be perfect.

Sad news about Dijji

Hi there,

I'm very sad to inform you that Dijji, my dad, died at the end of May 2021. He loved working on his open source projects, so I very much hope that you have found some value in them.

If you have the spare money, and feel you would like to pay your respects in some way, then please donate to the MS Society (or the equivalent in your home country) https://www.mssociety.org.uk/

If you feel that you would like to take ownership of one of his repos please let me know. I'm a computer programmer too (he taught me when I was young), but C# and Windows aren't really something I know much about.

All the best,
Emily

New Release in the iluvadev fork

This is not an Issue. I want to announce that I just released a new version of XstReader.
I've been working to be able to release a library (XstReader.Api) that can be used by any developer with all the functionality of XstReader

You can take a look at the fork iluvadev/XstReader

Changes:

2022-01-26

All projects:

  • New folder structure for code
  • Changed name of the project XstExport to XstExporter
  • Changed name of the project XstPortableExport to XstExporter.Portable
  • Changed project XstReader.Base to XstReader.Api
  • Adopted Semver in all projects

XstReader v.1.15.0:

  • Uses .Net Framework 4.6.1
  • Includes reference to Project XstReader.Api, not link to the code
  • It's possible view the properties of selected Folder
  • Properties list with much more information, with documented description
  • More information in header messages
  • Some more improvements in the information included in the message list

XstExporter v.2.0.1:

  • Uses .Net Framework 4.6.1
  • Includes reference to Project XstReader.Api, not link to the code

XstExporter.Portable v.2.0.1

  • Includes reference to Project XstReader.Api, not link to the code

XstReader.Api v.1.0.1:

  • Converted the project to .Net Standard
  • Refactored the whole project in order to make a versatile library
  • The .ost/.pst file is kept open while in use
  • XstFile implements IDisposable
  • All internal data is obtained when needed
  • XstFolder has properties
  • Encoded and classified all the properties defined in the MS doc, with their descriptions
  • DateTime values of properties are displayed in UTC
  • Automatic processing of signed and / or encrypted messages
  • More information about "Recipients" involved in a message

Powershell Export Issue

Using Outlook 2010 & Exchange 2010. When I create a PST using Outlook I don't have any issues. When I export a mailbox to a PST using the PowerShell command below from the Exchange server I am no longer able to see/expand sub folders.

New-MailboxExportRequest -Mailbox [email protected] -FilePath \server\d$\jdoe\backup_2018_03_15.pst

Thank you.

OST/PST encryption/compression

Are PST/OST files compressed by default? Or can they be compressed at demand? With what they're compressed?

When I try to open them plain with a text editor, I find no readable text, whatever the used encoding

I read that they can be encrypted but that it's a not well implemented functionnality, that it require a special configuration by the administrators, and that it's not done by default. Am I right on this point?

Duplicate Dictionary Key Exception During Processing of Certain Messages with Multiple Attachments

Hi Dijji:

First, thank you for a very useful app!

I ran across what may appear to be a very minor (or not) bug. The exception was thrown during the processing of a message with multiple attachments. The message contained two attachments (from the List<Attachment> Attachments collection). However, for both attachments, although their HasContentId was true, the fields Content was null and ContentId was "" (empty string) for both instances (is this normal?). Therefore, when trying to add to the Dictionary via dict.Add(a.ContentId, a), that triggered the exception below:

System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary'2.Insert(TKey key, TValue value, Boolean add) at XstReader.Message.EmbedAttachments(String body, XstFile xst)

I merely made the modification as shown below to prevent the exception. Both attachments showed up correctly in the message window (also was able to save both attachments successfully), but not sure that was the correct fix.

if (!dict.ContainsKey(a.ContentId))
{
    dict.Add(a.ContentId, a);
}

Reference in Message.cs where exception was thrown.

Mail character set

Foreign charaters (french for example) are not displayed correctly in preview pane

Few queries

Hi,
I have following queries -

  1. Does XstReader provide feature to export files extracted from pst/ost into msg files?
  2. If message file contains embeded files, XstReader returns oledata.mso file. How to extract original embedded files from oledata.mso?

Sample is attached.

Sample_Pst_For_XST.zip

Timestamp in UTC

I asked around but to no avail. Is the date/time recorded in an OST/PST in UTC?

I ran a few tests and XstReader correctly displays the LOCAL TIME on the source machine when the email was sent/received. The time-zone of the host where you are executing XstReader does not matter, which is a good thing.

Any idea the times could be parsed in UTC as that's the forensic gold standard?

Thanks,
Vikas

OST to PST

Would it be possible to have OST export to PST? That would make this awesome. And a lot of people would prefer to make donations to an open source tool, instead of shady softwares.

Use Non-destructive Sort

I assume this is understood,

Say sort required by Name then Time. Sorting by Date then From or To should leave all records for each From or To in Date order.

XstExport command usage

I'm trying to get XstExport.exe to work. https://github.com/Dijji/XstReader#xstexport
Could you give me a few pointers?
Thanks

D:> Mail\XstReader\XstExport.exe -e html -f=< Mail> <20211005.pst>
D:> Mail\XstReader\XstExport.exe -e html -f=Mail <20211005.pst>
At line:1 char:46
+ Mail\XstReader\XstExport.exe -e html -f=Mail <20211005.pst>
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported

D:> Mail\XstReader\XstExport.exe -e html -f=Mail 20211005.pst
You must specify exactly one Outlook file to export from.

JSON export

An proposal of enhancement: Export JSON file Instead of CSV.
JSON is rather modern format than CSV, that it cares multilingual character and multiple lines.
Almost all programming language library can read/write JSON file and jq command is one of portable tool to select column, filter records and so on.

Explorer Context Menu Support in Message File List

Using Win10.

  1. It would be nice to support Explorer context menu in message file list
  2. Message context menu opens print preview in application window - would be better to open in new window
  3. Message context menu does not give access to page settings (headers, margins etc) when selecting print (use print preview as workaround)
  4. Message Save File supports multiple file selection - nice

CSV export compliant with RFC4180

Release 1.4 document says

The CSV files exported are compatible with Excel. A limit of 32K is imposed on individual fields, beyond which they are truncated and terminated with '…'. New line characters within fields are replaced by semicolons. Fields which contain commas are wrapped in double quotation marks, and any double quotation marks within the field are replaced by single quotation marks.

I think RFC 4180 based conversion is better.
https://www.ietf.org/rfc/rfc4180.txt

  • if there is a new line in a column, then the field should be enclused in "" and no conversion about new line. It means one record can become multiple lines in CSV.
  • if there is a double quote in a column, then the field should be enclosed in "" and a double quote should be converted to two double quotes.

Excel and many libraries for csv can read such CSV file. And we don't have to worry about converting back ; to newline and ' to " .

HTML Export to the same folder structure

It would be great if it could export the HTML in the same folder structure as the original email folders.
email folder

Also it would be nice if it could drill down into the email subfolders and export those also.

CSV export with Message Body

Currently only properties of messages are exported, but not message body.
UserEntryId is a part of the body but the length of contents are very limited.

It is very useful if Body and/or NativeBody are exported.

Why don't provide a conversion capability?

Wondering why an ost-to-pst conversion capability is not in place. I could be wrong, but it looks like the code base is solid enough to support such with moderate amendment. Just curious if absence of such capability is due to consideration of usefulness, or implementation effort, or other reasons.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.