Ruby, Rails, Firefox, Anime, Mac
In: Neat Stuff21 Jun 2004
When I saw (and used) Mark Lyon’s Mbox & Maildir to Gmail Loader (GML) (I wrote about it), I was inspired to write a GUI version of it (I didn’t copy Mark’s code, just in case, though it works on the same basis). gExodus is what came out at the end of half a day’s work.
gExodus allows you to import your emails (in mbox format) into your Gmail account. The mbox format is the classic Unix-style mailbox format, and is used by Mozilla Mail/News, Mozilla Thunderbird, qmail, and many other Unix email applications. There currently isn’t support for qmail’s maildir format, which is a much better format in terms of reliability and efficiency (because there isn’t a need to lock a single file, as it is for the mbox format). There doesn’t seem to be any Windows email application that supports maildir, so I’ve left it out. Someone has also posted a feature request for maildir support in Mail/News (and consequently Mozilla Thunderbird), so vote for the bug! I’ll add support for for maildir and possibly the MH mailbox formats if someone requests for it.
Users of email clients which don’t use the mbox format (such as Outlook Express and Outlook) can convert their emails into the mbox format by importing them into Mozilla Mail/News or Mozilla Thunderbird. I’ll add support for Outlook Express (.DBX) and Outlook (.PST) email formats in the near future (there are many converters already available, in fact).
gExodus is written in Python, and uses PythonCard (which is based on wxPython toolkit). PythonCard is a simpler wxPython, and is amazingly simple to use. With a WYSIWYG resource editor which allows you to place widgets and edit their properties, as well as very simple syntax rules and event handling concepts, PythonCard is Visual Studio with a better grounded language (Python). Granted, there are some inadequacies, one of the most glaring being the lack of a formal tab order (I got around that by moving widgets to the front – the nearer one is to the front, the higher it’s tab order). Still, I’m glad I picked PythonCard for my graphical toolkit – I haven’t used any before and was considering my options at this Python GUI toolkit “comparison” page.
gExodus is a standalone program – Gordon McMillan’s Installer was used to convert the Python scripts into executable form. The article Building ‘standalone’ PythonCard Applications came in very handy, especially when I didn’t manage to get py2exe to work (the executable didn’t work properly). The documentation for using McMillan’s Installer with PythonCard didn’t seem to work also. Due to dependencies on the wxPython and PythonCard libraries, the resulting executable package is pretty hefty (approx. 4MB) – 2.4MB of that is a wxPython DLL.
The source code is currently unreleased (I’ll put it out in the near future). Listed below are the binaries.
Feedback is greatly appreciated. I haven’t really tested it on other machines (just my own Pentium 4 desktop running Windows XP), so bugs are expected (please let me know of them).