GNOME Bugzilla – Bug 208426
import pst non-mail data from outlook
Last modified: 2009-04-17 04:57:00 UTC
Description of Problem: Need an import tool to import outlook's *.pst personal folder files. Additional Information: With so much functionality the same as MS Outlooks' this feature must be very important to capture users into this PIM.
See #1575 for a solution to this. A more elegant solution should be provided post-1.0, I believe.
This bug should be re-opened (or new bugs filed) as the workaround from bug 201575 only helps migrating mail, but not the .pst-file's calendar data or the task list. For me, not being able to import my extensive task list from outlook is a mayor problem for migration. Proposing Piority:Mayor.
ettore, iain: can you look at this and comment for time-frame and such for 1.2? Is it at all reasonable? Leaving as wishlist for the time being, but noting that it would definitely be nice and in keeping with the themes for 1.2.
Unless we get someone who knows windows coding, I don't see us being able to do anything more than the Mozilla workaround. .PST files are totally undocumented, and the only way to access them is through MAPI.DLL. Even if we do get someone who can do this, it'll still be a "Run this program on windows, and copy some files across to your linux partition" hack. Unless we want to make it depend on Wine...
Targetting this as Future, not much we can do about it
*** bug 215482 has been marked as a duplicate of this bug. ***
http://sourceforge.net/projects/ol2mbox is a project to convert pst to mbox entirely on unix. He seems to have decoded some of the format, although it apparently only works on "No Encryption" PST files, which are not the default. http://www.wirejunkie.com/freestuff/devout/ is a VBA app, written by an evo user. He admits it's imperfect.
Another one... this one actually looks really cool: http://www.cyberus.ca/~phoenix/outport/ It does contacts, calendar, and tasks, and it even creates the folder metadata files and everythign that Evolution wants! Still doesn't do attachments to email though... (Oh, and it's GPL.)
Hmm... outport seems worth a test. The two other programs (14:57) can be only used to tackle bug 201575, since both of them are described as only exporting e-mails.
*** bug 246338 has been marked as a duplicate of this bug. ***
Reassigning all importer bugs to component owners. Sorry for the spam
ol2mbox has been renamed to libpst and moved here: http://alioth.debian.org/projects/libpst/ The Debian package of it only produces the command-line readpst program, it would be great if you could convince the libpst people to build a shared library, then adding a cross-platform evolution plugin for importing .pst files would probably become a lot easier.
There's a write-up here of migrating from Outlook 2000 to Evolution, including Email, Tasks, Notes, Calendar, and Contacts: http://nickj.org/How_to_migrate_from_Outlook_2000_to_Evolution In the end I had to use Outport + a commercial $10 program called O2M (which is aimed at people migrating from Outlook to a Macintosh), as all the FOSS solutions I tried either did not work, or had data loss problems.
http://www.five-ten-sg.com/libpst/ is the fork. I have submitted patches to the libpst library for building shared libraries. So Evolution could now import .pst files via the Importer interface
Created attachment 126340 [details] [review] Evolution plugin
I have changed the license for the file. Chris Halls is a busy man to catch on IRC. Last time I found him, he was ok with the license changes to the work that he had started.
There's no configure option to enable or disable building the plugin. I felt its better to have it the gstreamer way than having an additional option for it
commit to trunk only. Few things: -> all printf should be conditional. Dont print subject of every mail being imported. it will be killing -> the name of the .eplug.xml file should align with the plugin name -> include <gtk/gtk.h> should be sufficient As the patch is well tested also, I believe it is good for trunk.
Thanks. Just wanted to get this in before feature freeze. Will update all portions before committing. Lot of junk hanging in there.
Created attachment 126506 [details] [review] To generate shared library for libpst This is to be used with version 0.6.17. Integrated into the later versions.
Created attachment 126507 [details] [review] Temp fix for libpst This is to be used with version 0.6.17. Will be fixed cleanly in the next update of Evolution
Committed the updated patch to trunk as r37078.
Nice. Please mention in http://live.gnome.org/RoadMap for 2.26.
@Bharath: Please do add new files with strings to POTFILES.in (also for future reference). Also, you are in String Announcement period and you must inform gnome-i18n@ about this. (_("_Journal entries")) - what is that? If it's an Outlookism I can accept it, but I haven't seen that anywhere else in the Evolution UI yet.
hmmm looks like I added just the eplug file to POTFILES.in okies will add the other one. Journal entries is an Outlookism. We usually map it to Memos in the MAPI code.
Created attachment 127444 [details] screenshot of the importer
Created attachment 127445 [details] UI for selecting the types
*** Bug 231099 has been marked as a duplicate of this bug. ***
I've got big problem building with libpst 0.6.34 I've discussed with libpst developper, and he told me that there should not have #include libpst/define.h And other problems are : pst-importer.c:475: error: too few arguments to function 'pst_parse_item' pst-importer.c: In function 'pst_process_item': pst-importer.c:550: error: too few arguments to function 'pst_parse_item' pst-importer.c: In function 'pst_process_folder': pst-importer.c:664: error: invalid operands to binary != (have 'pst_string' and 'void *') pst-importer.c:665: error: incompatible type for argument 1 of 'foldername_to_utf8' pst-importer.c:667: warning: format '%s' expects type 'char *', but argument 4 has type 'pst_string' pst-importer.c:679: error: 'struct pst_item_folder' has no member named 'email_count' pst-importer.c: In function 'attachment_to_part': pst-importer.c:740: error: used struct type value where scalar is required pst-importer.c:741: error: used struct type value where scalar is required pst-importer.c:748: error: invalid operands to binary != (have 'pst_string' and 'void *') An so on... Seems that the plugin is incompatible with libpst 0.6.34. This is bad because it's the available version when evolution 2.26 is out
Yes indeed. The libpst developers seem to have changed the ABI between libpst 0.6.27 and 0.6.29. Downgrade to libpst 0.6.27 -- it is still compatible, but you will have to change the #include <libpst/define.h> to <libpst/common.h> in pst-impoert.c. Or use libpst 0.6.24.
Hum, too bad, Mandriva cooker is on version freeze. No hope for having it working for libpst 0.6.34 ? (I mean for evolution 2.26.1 )
Well I convinced Mandriva team to go back to 0.6.27, changed <libpst/define.h> to <libpst/common.h>, but seems the function pst_process_email changed : pst-importer.c: In function 'pst_process_email': pst-importer.c:891: error: 'pst_item' has no member named 'current_attach' pst-importer.c:893: error: 'pst_item' has no member named 'current_attach' pst-importer.c:896: error: 'pst_item' has no member named 'current_attach' pst-importer.c:902: error: 'pst_item' has no member named 'current_attach' pst-importer.c:902: error: 'pst_item' has no member named 'current_attach' Is it possible to have a little patch for this ?
The key is in this commit : http://hg.five-ten-sg.com/libpst/rev/23a36ac0514d Is this safe to remove this commit from 0.6.27 ?
--- src/libpst.h 2008-09-03 10:50:59.000000000 +0530 +++ src/libpst.h 2008-09-04 09:10:27.000000000 +0530 @@ -448,6 +448,7 @@ typedef struct pst_item { struct pst_item_folder *folder; // data reffering to folder struct pst_item_contact *contact; // data reffering to contact struct pst_item_attach *attach; // linked list of attachments + struct pst_item_attach *current_attach; // linked list of current attachments struct pst_item_message_store *message_store; // data referring to the message store struct pst_item_extra_field *extra_fields; // linked list of extra headers and such struct pst_item_journal *journal; // data reffering to a journal entry Adding this hunk to libpst source should fix the issue. I'll pick up their latest package and fix all issues for evolution 2.26.1
The patch builds, pst-import plugin is enabled in evolution, but I've no choice for pst file. Seems that's something's missing...
I do not know Mandriva (or its packaging); but for Ubuntu I had to add the pst-import to one of the binary packages generated by the build process (evolution-plugins, to be precise). This may apply to you also. YMMV.
The plugins are in the main package. There are 2 files : /usr/lib/evolution/2.26/plugins/liborg-gnome-pst-import.so /usr/lib/evolution/2.26/plugins/org-gnome-pst-import.eplug Can you attach the patch file you used to build it on Ubuntu ?
Sorry eandry, which patch are you talking about? The libpst patch, or the Ubuntu package diff?
I mean the package diff. It is more and more strange. I've looked at libpst and evolution package from opensuse factory, and I really don't see where the problem is . (Maybe it doesn't work in opensuse too?)
Created attachment 131383 [details] package diff with pst-import. Not yet submitted (but I used it OK) Here it is.
to zero in: look at evolution-plugins.install.
Where can I get a pst file for testing?
(In reply to comment #42) > Where can I get a pst file for testing? Try this for testing: http://www.nabble.com/attachment/21537232/0/chris.pst Comes from this thread: http://www.nabble.com/PST-import-plugin-for-Evolution-added-td21479922.html
It doesn't work here. The pst plugin is active, but .pst is not in the list of supported file types when you try to import a single file. I'm using evo 2.26.0 on Mandriva.
When I deactivate and reactivate the plugin, this is printed: ** (evolution:12593): WARNING **: Outlook PST-Importeur ** (evolution:12593): WARNING **: Outlook PST-Importeur
I'm seeing this warning at build: pst-importer.c: In function 'pst_init': pst-importer.c:1709: warning: implicit declaration of function 'DEBUG_ENT' This is defined in the libpst header define.h that is internal in libpst 0.6.27 as used by Mandriva.
Created attachment 131423 [details] [review] remove pst debug function This makes it work on Mandriva with libpst 0.6.27. You also have to include common.h instead of define.h
Closing this bug. Follow ups for the plugin with the latest libpst tarball in http://bugzilla.gnome.org/show_bug.cgi?id=578945. Thanks.