GWFTB v2.9: Last GPL version

GWFTB has moved to http://admincraft.com

Last Updated:  Monday, 2013.02.04 - This is last GPL version: 2.9.0.0

Click to enlarge...

Download Links
Feedback
Features
How To Use
FAQ
Version History
GPL v3.0 Notice




Direct Download Links


Feedback

Send all you need to admincraft@admincraft.org

Features

- Portable, no setup required.
- Runs only on Windows (xp or later), both 32/64 bit editions.
- Scans for and detects Thunderbird mail folders.
- Batch-process Thunderbird mail files.
- Handles large Thunderbird mail files.
- Support for selective/non-UTF8 content encoding.
- Full support for unicode labels.
- Support for Gmail nested labels.
- Accounts for duplicates on your web mailbox; uploads only what is needed.
- Checks for Google mail quota above %85 and disables message upload, yet still performs required labeling, if any.
- Optional IMAP verbose logging.
- Can Cancel/Pause/Resume jobs when needed. For instance, when it is eating your bandwidth.
- Requires .net framework 3.5.

How To Use

Tip: To process a single isolated file out of its normal location, create an empty text file in the same folder where the file is, then change its extension to .msf

GWFTB will scan your harddisk at a location of your choice, will detect Thunderbird/mbox mail files, then will upload all message content of the mbox files you select using a labeling method, also of your choice!
Migrating from Thunderbird/mbox format to Gmail has never been easier, with full support for non-latin labels and Gmail nested labels.

*Required Information*
Full Email Address: This is the target email account's full address, where your messages will go. Google Apps supported. Example: user@myDomain.com.
Password: This is the target email account's password.
Native 'All Mail': Google uses native, non-English names for 'All Mail' folder on Googlemail.com accounts. If you see 'All Mail' folder on the web interface in any other language (than English) then you must use this feature, otherwise, GWFTB will fail!
Mail Folder: This is where you think/know your mail files are. If you are not sure, you can select an entire partition! GWFTB will scan selected mail folder and present to you any mbox mail file it finds.

*Labeling Method*
Labeling Methods are extremely flexible, there is nothing to tie your hands with GWFTB. They are designed to be suitable for whatever way you wish to migrate from Thunderbird/mbox-format to Gmail.
Override-Label: Type one and select as many mbox files as you wish. All message content will get placed under one top-level Override-Label on Gmail matching the one you typed. Nothing more.
Nested-Root: Choose a root-folder that must be same-as/under selected Mail Folder, and as many mbox files as you wish. Any mbox file within the Nested-Root tree will have its content placed under a Gmail Nested-Label matching its position in Thunderbird folder tree. Non-matching mbox files are ignored!
GOOD OLD Filenames: Every selected mbox file will have a top-level matching label on Gmail with its message content!
Also, label using Tags: This is an optional feature that allows you to match all your message tags with Gmail labels. Tags will be created as top-level labels on Gmail. However, this feature has limited support for tags; tag strings are read directly from mbox files, but if tag-field value is longer than 80 characters it will not be present as Thunderbird moves it to matching .msf index file in MORK format which is really hard to parse/support. Also, sometimes tag-field is corrupt or invalid, which could break GWFTB process.
When selecting this feature, you need to specificly select your account's (pref.js) file from list, otherwise GWFTB will not be able to translate message tags and will disable this feature for you! If you do not know which (prefs.js) file to choose, you can cosult Mozilla Support at support.mozilla.com.

*Encoding?*
Choose encoding, or enter your own: This combo-box was added to support mbox files that have messages written with character encodings other than utf-8 or unicode in general (referred to as Code Page character sets). For example, if you are German and have set your "Windows Input Locale" to German, you will have your mbox files with messages written in Windows Code Page 1252. Before this feature was added, GWFTB assumed all messages were written in utf-8 or unicode, which sometimes caused trouble with special latin character representations, like the German Umlaut or the French accented letters.
So, what to choose, or type? The simplest rule of thumb is to leave as default "From System", specially if the mbox file being processed has been written on the very same system that GWFTB is running on, or on another typical system (because they would both be using same Input Locale).
Otherwise, if you are sure and know what you are doing, you can either choose UTF-8 or enter your own Windows Code Page.
The encoding that you will choose will be validated anyway before processing, or you can validate it yourself with the "Validate Encoding" button. It is always good to manually validate encoding so that GWFTB does not stop processing on "bad encoding" error. Selected-encoding's equivalent Windows Code Page will be shown below the combo-box in "CP: xxxx".

*Options*
Start Filing!: This will start migration process with your selected settings. During which, you can (Pause/Resume) process.
Cancel: This will confirm then cancel any running migration process.
Detailed Log?: This will create a protocol-level log of all IMAP session command/response data that GWFTB carries out. This is helpful to debug/troubleshoot any problem with your migration process. Be very careful that your full email address and password that you typed into Required Information will also be recorded here in readable text, as a result of IMAP (login) command.
Log file will be created as (GWFTB\GWFTB.log).

FAQ

Q: "Looking for mbox files" seems like forever! Why?
A: "Looking for mbox files" process will always be longer than expected *on first run only*. More facts:
- GWFTB searches chosen mail directory using a 'WMI ObjectSearcher'. What, why?
- What: WMI 'Windows Management Instrumentation' is a technology used by Microsoft to help manage Windows OS. It allows scripting/automation and/or system-objects-provisioning for tasks that would otherwise be nearly impossible.
- Why: There are only 3 ways to search for files. Native/Win32 Windows API, .Net API (which is built around the first one) and WMI. When using any of the first two, the API honors filesystem permissions where it shouldn't, causing the query for file names on disk to fail with no work-around.
Given that, the only way viable would be WMI, since it does not query filesystem for files. Instead it queries a live and dynamic in-memory data-store that holds filesystem information among thousands of many other categories of information about the running Windows system.
- So? The problem with this method is:
1- Filesystem information tables must be initialized on every Windows system startup before search is committed.
2- Search is disk-and-cpu dependent. The faster they are, the sooner you get results.
And, yes, this means that if you have another software that uses filesystem WMI search that would *run and finish* before GWFTB, GWFTB file search will end up running faster (because WMI filesystem information tables were already initialized!)
And, no. WMI search has nothing to do with an mbox file size. It could only be affected by: Slow Disk, Slow CPU, Large Counts of Files (i.e large disks having millions of files, hence, larger and longer WMI data tables!)

Q: I always get "Error@FreeSpace Check: Not enough free space to run!" Why?
A: GWFTB checks each mbox file in process to see if there is enough free space for it. In other words: GWFTB mainly works by chopping each mbox file into its content of email messages (this happens without affecting the original file, as it occurs to the copy loaded in system memory). After the mbox file is chopped, all required email messages (in .eml format) are uploaded (an email message is never written to disk unless it is absent on the web).
Given that, 2 conditions must be met: One, GWFTB cannot be run from a network share even if mapped into My Computer, and two, there must always be enough free space on the partition GWFTB will run from equal to double-the-size of any box file in process (assuming all its contained messages are absent on the web!).
So, if you are getting this error, you need to either run GWFTB from your own hard disk, or, relocate it and re-run it from another partition with more free space.

Q: I always get Error@IMAP.Login: Login Failed!
A: If you are sure your full address and/or password are completely correct, please reset the Captcha status for that account. You can follow instructions at (new window) https://www.google.com/accounts/UnlockCaptcha
and (new window) https://accounts.google.com/DisplayUnlockCaptcha


Version History

Older v1.x page can be found here.

Version 2.9.0.0

- No more updates will be made under GPL. Development continues for the shareware version, which is offered for a next-to-free price :)
Shareware version 3.0 is now available at http://admincraft.com

Version 2.2.3.0

- enoughSpace() function, which determines needed free working space, did not anticipate absolute-zero-length mail files, causing arithmetic overflow on division. Fixed.

Version 2.2.2.0

- Malformed Message-ID headers contain Precent Character, which caused behavior very similar to that of the bang (!) bug. Fixed.

Version 2.2.1.1

- A line that logs only IMAP commands in commandBuilder() slipped from debug to release, which caused IMAP commands be logged regardless of "Detailed Log?" option. Line removed. Fixed.

Version 2.2.1.0

- The German had another say on 'All Mail' ;) Google is using native names for Googlemail accounts! Fixed.

Version 2.2.0.0

- Again, All Mail folder anomaly is met on German soil! Fixed.

Version 2.1.9.0

- Google is using bang (!) for negation in IMAP commands. Some Message-ID values start with bang, which made GWFTB behave in a weird way, applying a single label to all exiting mail in an account. Fixed.

Version 2.1.8.0

- Forgot to add "Date: " word which caused inDate() function to return bad "Internal Date". Fixed.

Version 2.1.7.0

- A bug in abstracted SharpMessage calss in SharpMimeTools.dll caused GWFTB hang on messages with malformed headers. Now GWFTB uses lower level SharpMimeMessage class, which is more reliable. Fixed.
+ GWFTB now shows more detailed progress for both mbox-parsing/eml-uploading.

Version 2.0.6.0

+ Added support for selective/non-UTF8 encoding for message body (i.e. mbox file content).

Version 2.0.5.0

- Again, "Internal Date" was causing problems on localized Windows versions. Fixed.

Version 2.0.4.0

- Had feedback on the case of googlemail.com accounts, where "All Mail" folder is non-standard. Accounted for. Fixed.

Version 2.0.3.0

- Labeling was being missed for deep folder trees. Fixed.

Version 2.0.2.0

- Major bug: Labeling was being done to only one label. Fixed.

Version 2.0.1.0

- Label proofing was not taking place. Fixed.

Version 2.0.0.0

+ On popular demand, added full support for unicode labels.
+ On popular demand, added full support for Gmail nested labels, which allows automatic Thunderbird folder tree mirroring to Gmail.
+ Complying with Google's discrete label-length change up to 225 characters!
- Messages with non-RFC-compliant headers were being broken by Gmail. Fixed using excellent SharpMimeTools.dll.
- Better "Internal Date" handling using excellent SharpMimeTools.dll.
- Spaces and double-quotes are now accepted in Password string.



This page with its source code and files is licensed under The GNU General Public License (GPL). GWFTB is licensed under GNU GPLv3.