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