0
|
1 RFC reference:
|
|
2 RFC 1341 - base64 Mime encoding and layout of mime headers
|
|
3 RFC 2183 - Content-Disposition for describing email attachments
|
|
4 RFC 2426 - vCard definition (for saving contacts)
|
|
5
|
|
6 LibPST v0.5
|
|
7 ===========
|
|
8
|
|
9 It is with GREAT relief that I bring you version 0.5 of the LibPST tools!
|
|
10
|
|
11 Through great difficulties, this tool has survived and expanded to become even
|
|
12 better.
|
|
13
|
|
14 The changes are as follows:
|
|
15 * RTF support. We can now decompress RTF bodies in emails, and are saved as attachments
|
|
16 * Better support in reading the indexes. Fixed many bugs with them
|
|
17 * Improved reliability. "Now we are getting somewhere!"
|
|
18 * Improved compiling. Hopefully we won't be hitting too many compile errors now.
|
|
19 * vCard handling. Contacts are now exported as vCard entries.
|
|
20 * vEvent handling. Support has begun on exporting Calendar entries as events
|
|
21 * Support for Journal entries has also begun
|
|
22
|
|
23 If you have any problems with this release, don't hesitate to contact me.
|
|
24
|
|
25 These changes come to you, as always, free under the GPL license!! What a wonderful
|
|
26 thing it is. It does mean that you can write your own program off of this library
|
|
27 and distribute it also for free. However, anyone with commercial interests for
|
|
28 developing applications they will be charging for are encouraged to get in touch
|
|
29 with me, as I am sure we can come to some arrangement.
|
|
30
|
|
31 Dave Smith
|
|
32 <dave.s@earthcorp.com>
|
|
33
|
|
34 LibPST v0.4.3
|
|
35 =============
|
|
36
|
|
37 Bug fix release. No extra functionality
|
|
38
|
|
39 Dave Smith
|
|
40 <dave.s@earthcorp.com>
|
|
41
|
|
42 LibPST v0.4.2
|
|
43 =============
|
|
44
|
|
45 The debug system has had an overhaul. The debug messages are no longer
|
|
46 printed to the screen when they are enabled. They are dumped to a
|
|
47 binary file. There is another utility called "readlog" that I have
|
|
48 written to handle these log files. It should make it easier to
|
|
49 selectively view bits of a log file. It also shows the position that
|
|
50 the log message was printed from.
|
|
51
|
|
52 There is a new switch in readpst. It is -d. It enables the user to
|
|
53 specify the log file which the binary log is written to. If the switch
|
|
54 isn't used, the default file of "readpst.log" is used.
|
|
55
|
|
56 The code is now Visual C++ compatible. It has compiled on Visual C++
|
|
57 .net Standard edition, and produces the readpst.exe file. Use the project
|
|
58 file included in this distribution.
|
|
59
|
|
60 There have been minor improvements elsewhere too.
|
|
61
|
|
62
|
|
63 LibPST v0.4.1
|
|
64 =============
|
|
65
|
|
66 Fixed a couple more bugs. Is it me or do bugs just insert themselves
|
|
67 in random, hard to find places!
|
|
68
|
|
69 Cured a few problems with regard to emails with multiple embeded
|
|
70 items. They are not fully re-created using Mime-types, but are
|
|
71 accessible with the -S switch (which saves everything as seperate
|
|
72 items)
|
|
73
|
|
74 Fixed a problem reading the first index. Back sliders are now
|
|
75 detected. (ie when the value following the current one is smaller, not
|
|
76 bigger!)
|
|
77
|
|
78 Added some error messages when we try and read outside of the PST
|
|
79 file, this was causing a few problems before, cause the return value
|
|
80 wasn't always checked, so it was possible to be reading random data,
|
|
81 and trying to make sense of it!
|
|
82
|
|
83 Anyway, if you find any problems, don't hesitate to mail me
|
|
84
|
|
85 Dave Smith
|
|
86 <dave.s@earthcorp.com>
|
|
87
|
|
88 LibPST v0.4
|
|
89 ===========
|
|
90
|
|
91 Fixed a nasty bug that occasionally corrupted attachments. Another bug
|
|
92 with regard to reading of indexes (also occasional).
|
|
93
|
|
94 Another output method has been added which is called "Seperate". It is
|
|
95 activated with the -S switch. It operates in the following manor:
|
|
96
|
|
97 |--Inbox-->000000
|
|
98 | 000001
|
|
99 | 000002
|
|
100 |--Sentmail-->0000000
|
|
101 | 0000001
|
|
102 | 0000002
|
|
103
|
|
104 All the emails are stored in seperate files counting from 0 upwards,
|
|
105 in a folder named as the PST folder.
|
|
106
|
|
107 When an email has an attachment, it is saved as a seperate file. The
|
|
108 filename for the attachment is made up of 2 parts, the first is the
|
|
109 email number to which it belongs, the second is its filename.
|
|
110
|
|
111 The should now be runnable on big-endian machines, if the define.h
|
|
112 file is first modified. The #define LITTLE_ENDIAN must be commented
|
|
113 out, and the #define BIG_ENDIAN must be uncommented.
|
|
114
|
|
115 More verbose error messages have been added. Apparently people got
|
|
116 confused when the program stopped for no visible reason. This has now
|
|
117 been resolved.
|
|
118
|
|
119 Thanks for the continued support of all people involved.
|
|
120
|
|
121 Dave Smith
|
|
122 <dave.s@earthcorp.com>
|
|
123
|
|
124 Libpst v0.3.4
|
|
125 =============
|
|
126
|
|
127 Several more fixes. An Infinite loop and incorrect interpreting of
|
|
128 item index attributes. Work has started on making the code executable
|
|
129 on big endian CPUs. At present it should work with Linux on these
|
|
130 CPUs, but I would appreciate it if you could provide feedback with
|
|
131 regard to it's performance. I am also working with some other people
|
|
132 at make it operate on Solaris.
|
|
133
|
|
134 A whole load more items are now recognized by the Item records. With
|
|
135 more items in Emails and Folders. I haven't got to the Contacts yet.
|
|
136
|
|
137 Anyway, this is what I would call a minor feature enhancment and
|
|
138 bugfix release.
|
|
139
|
|
140 Dave Smith
|
|
141 <dave.s@earthcorp.com>
|
|
142
|
|
143 LibPST v0.3.3
|
|
144 =============
|
|
145
|
|
146 Fixed several items. Mainly memory leaks. Loads of them! oops..
|
|
147
|
|
148 I have added a new program, mainly of debugging, which when passed
|
|
149 an ID value and a pst file, will extract and decrypt that ID from
|
|
150 the pst file. I don't see it being a huge attraction, or of much use
|
|
151 to most people, but it is another example of writing an application
|
|
152 to use the libpst interface.
|
|
153
|
|
154 Another fix was in the reading of the item index. This has hopefully
|
|
155 now been corrected. The result of this bug was that not all the emails
|
|
156 in a folder were converted. Hopefully you should have more luck now.
|
|
157
|
|
158 Dave Smith
|
|
159 <dave.s@earthcorp.com>
|
|
160
|
|
161 LibPST v0.3.2
|
|
162 =============
|
|
163
|
|
164 Quick bugfix release. There was a bug in the decryption of the basic
|
|
165 encryption that outlook uses. One byte, 0x6c, was incorrectly decrypted
|
|
166 to 0x6c instead of 0xcd. This release fixes this bug. Sorry...
|
|
167
|
|
168
|
|
169 LibPST v0.3.1
|
|
170 =============
|
|
171
|
|
172 Minor improvements. Fixed bug when linking multiple blocks together,
|
|
173 so now the linking blocks are not "encrypted" when trying to read
|
|
174 them.
|
|
175
|
|
176
|
|
177 LibPST v0.3
|
|
178 ===========
|
|
179
|
|
180 A lot of bug fixing has been done for this release. Testing has been
|
|
181 done on the creation of the files by readpst. Better handling of
|
|
182 large binaries being extracted from the PST file has been implemented.
|
|
183
|
|
184 Quite a few reports have come in about not being able to compile on
|
|
185 Darwin. This could be down to using macros with variable parameter
|
|
186 lists. This has now been changed to use C functions with variable
|
|
187 parameters. I hope this fixes a lot of problems.
|
|
188
|
|
189 Added support for recreating the folder structure into normal
|
|
190 directories. For Instance:
|
|
191
|
|
192 Personal Folders
|
|
193 |-Inbox
|
|
194 | |-Jokes
|
|
195 | |-Meetings
|
|
196 |-Send Items
|
|
197
|
|
198 each folder containing an mbox file with the correct emails for that
|
|
199 folder.
|
|
200
|
|
201 Dave Smith
|
|
202 <dave.s@earthcorp.com>
|
|
203
|
|
204
|
|
205 LibPST v0.3 beta1
|
|
206 =================
|
|
207
|
|
208 Again, a shed load of enhancements. More work has been done on the
|
|
209 mime creation. A bug has been fixed that was letting part of the
|
|
210 attachments that were created disappear.
|
|
211
|
|
212 A major enhancement is that "compressible encryption" support has been
|
|
213 added. This was an incredibly simple method to use. It is basically a
|
|
214 ceasar cipher. It has been noted by several users already that the PST
|
|
215 password that Outlook uses, serves *no purpose*. It is not used to
|
|
216 encrypt the PST, it is mearly stored there. This means that the
|
|
217 readpst application is able to convert PST files without knowing the
|
|
218 password. Microsoft have some explaning to do!
|
|
219
|
|
220 Output files are now not overwritten if they already exist. This means
|
|
221 that if you have two folders in your PST file named "fred", the first
|
|
222 one encountered will be named "fred" and the second one will be named
|
|
223 "fred00000001". As you can see, there is enough room there for many
|
|
224 duplicate names!
|
|
225
|
|
226 Output filenames are now restricted. Any "/" or "\" characters in the
|
|
227 name are replaced with "_". If you find that there are any other
|
|
228 characters that need to be changed, could you please make me aware!
|
|
229
|
|
230 Thanks to Berry Wizard for help with supporting the encryption.
|
|
231
|
|
232 Thanks to Auke Kok, Carolus Walraven and Yogesh Kumar Guatam for providing debugging
|
|
233 information and testing.
|
|
234
|
|
235 Dave Smith
|
|
236 <dave.s@earthcorp.com>
|
|
237
|
|
238
|
|
239 LibPST v0.2 beta1
|
|
240 =================
|
|
241
|
|
242 Hello once more...
|
|
243
|
|
244 Attachments are now re-created in mime format. The method is very
|
|
245 crude and could be prone to over generalisation. Please test this
|
|
246 version, and if attachments are not recreated correctly, please send
|
|
247 me the email (complete message source) of the original and
|
|
248 converted. Cheers.
|
|
249
|
|
250 I hope this will work for everyone who uses this program, but reality
|
|
251 can be very different!
|
|
252
|
|
253 Let us see how it goes...
|
|
254
|
|
255 Dave Smith
|
|
256 <dave.s@earthcorp.com>
|
|
257
|
|
258 LibPST v0.2 alpha1
|
|
259 ===========
|
|
260
|
|
261 Hello!
|
|
262
|
|
263 Some improvements. The internal code has been changed so that
|
|
264 attachments are now processed and loaded into the structures. The
|
|
265 readpst program is not finished yet. It needs to convert these binary
|
|
266 structs into mime data. At present it just saves them to the current
|
|
267 directory, overwriting any previous files with the attachment name.
|
|
268
|
|
269 Improvements over previous version:
|
|
270 * KMail output is supported - if the "-k" flag is specified, all the
|
|
271 directory hierarchy is created using the KMail standard
|
|
272 * Lots of bugs and memory leaks fixed
|
|
273
|
|
274
|
|
275 Usage:
|
|
276
|
|
277 ReadPST v0.2alpha1 implementing LibPST v0.2alpha1
|
|
278 Usage: ./readpst [OPTIONS] {PST FILENAME}
|
|
279 OPTIONS:
|
|
280 -h - Help. This screen
|
|
281 -k - KMail. Output in kmail format
|
|
282 -o - Output Dir. Directory to write files to. CWD is changed *after* opening pst file
|
|
283 -V - Version. Display program version
|
|
284
|
|
285 If you want to view lots of debug output, modify a line in "define.h"
|
|
286 from "//#define DEBUG_ALL" to "#define DEBUG_ALL". It would then be
|
|
287 advisable to pipe all output to a log file:
|
|
288
|
|
289 ./readpst -o out pst_file &> logfile
|
|
290
|
|
291 Dave Smith
|
|
292
|
|
293 LibPST v0.1
|
|
294 ===========
|
|
295
|
|
296 Hi Folks!
|
|
297
|
|
298 This has been a long, hard slog, but I now feel that I have got
|
|
299 somewhere useful. The included program "main" is able to read an
|
|
300 Outlook PST file and dump the emails into mbox files, separating each
|
|
301 folder into a different mbox file. All the mbox files are stored in
|
|
302 the current directory and no attempt is yet made to organise these
|
|
303 files into a directory hierarchy. This would not be too difficult to
|
|
304 achieve though.
|
|
305
|
|
306 Email attachments are not yet handled, neither are Contacts.
|
|
307
|
|
308 There is no pretty interface yet, but you can convert a PST file in
|
|
309 the following manner
|
|
310
|
|
311 ./main {path to PST file}
|
|
312
|
|
313 This is very much a work in progress, but I thought I should release
|
|
314 this code so that people can lose their conception that outlook files
|
|
315 will never be converted to Linux.
|
|
316
|
|
317 I am intending that the code I am writing will be developed into
|
|
318 greater applications to provide USEFUL tools for accessing and
|
|
319 converting PST files into a variety of formats.
|
|
320
|
|
321 One point I feel I should make is that Outlook, by default, creates
|
|
322 "Compressible Encryption" PST files. I have not, as yet, attempted to
|
|
323 write any decryption routines, so you will not be able to convert
|
|
324 these files. However, if you create a new PST file and choose not to
|
|
325 make an encrypted one, you can copy all your emails into this new one
|
|
326 and then convert the unencrypted one.
|
|
327
|
|
328 I hope you enjoy,
|
|
329
|
|
330 Dave Smith
|