MS has created APIs for getting access to the exchange data store. For example, you can manipulate exchange mbox records with MAPI (C), extended MAPI (C), CDO (VB,C#,C++,C,.NET), HTTP/WEB-DAV (VB,C#,C++,C,.NET), and ADO (VB,C#,C++,C,.NET)
There are projects out there to interface specifically with the messaging capabilities of MS-formatted mail with Java (e.g. JTNEF - Java TNEF package ). However, I am not sure how far you will get with a Java API to access exchange internals.
Also, the internals of exchange differ from version to version. How you query records from exchange 5.5, will probably be quite different from exchange 2000 or later.