Folder pane has incorrect names on migrate
Good day
Migrating Thunderbird from 31.7.0 (Under windows XP) to Windows 10.
Noting some screwy folder names within the Thunderbird email folder list Pane on the new windows 10 machine.
From what I've read Thunderbird generates screwy "file system" names when non file system fold name characters are used (Suspect characters such as " , +, &, <. >, *, etc...) and then the correct actual folder name is stored within the MSF index file.
From what I've been able to determine, the issued folder name MSF index files don't contain the correct name and so when I bring the email up on the new machine, it just takes the system generated physical file name.
If I pre-rename the issued folders (from within Thunderbird from Name + "X" and then back to Name) before the migrate, then folder name is correct under Windows 10 (the name exists within MSF index). From what I can tell, these issued folder names have been present since the migration from outlook express (a few years prior)
The Problem is that there are hundreds of folders (maybe 500) so I'm having a hard time identifying them all.
Questions
1) Any idea how to read the folder name from the MSF index file? (or at least identify when it is missing). I've tried to look ito the MSF file format via the documentation I could locate; but can't figure it out. 2) In the current XP machine, If the email folder name isn't present in the MSF file, then where is it being stored (another Thunderbird file or in Registry) 3) Know of any tools to export the folder names to a flat file (Folder name and Folder path)
Thanks for any assistance or ideas
All Replies (8)
Some additional information.
Below is a sample taken from the the MSF file file from the above email folder name.
I figured out the name of the folder (under XP) was "** Promotions / Assistance" (from the XP machine). The name was correct within thunderbird but not present in the MSF index file.
In WIndows XP, I renamed the "** Promotions / Assistance" email folder to "** Promotions / AssistanceX" and then back to "** Promotions / Assistance" which then showed the folder name in the MSF index file.
When I copied the updated MSF index file to the correct spot under windows 10, the folder name was correct
sample (subset) taken from 45c009d8.msf
@$${9{@ < <(a=c)> // (f=iso-8859-1)
(CB=indexingPriority)>
<(ED=** Promotions / AssistanceX)> [1:^9F(^B2^ED)] @$$}9}@
@$${A{@ <(EE=1515547835)>[1:^9F(^B8^EE)] @$$}A}@
@$${B{@ < <(a=c)> // (f=iso-8859-1)
(CC=smartFolderName)>
<(EF=ISO-8859-1)>[1:^9F(^C0^EF)] @$$}B}@
@$${C{@ @$$}C}@
@$${D{@ @$$}D}@
@$${E{@ @$$}E}@
@$${F{@ @$$}F}@
@$${11{@ [1:^9F(^B2=)] @$$}11}@
@$${12{@ <(F0=** Promotions / Assistance)> [1:^9F(^B2^F0)] @$$}12}@
@$${13{@ <(F1=1515547848)>[1:^9F(^B8^F1)] @$$}13}@
An observation: / is a directory indicator, so a file name like "Promotions/Assistance" will generate Assistance as a subfolder of Promotions. I doubt that's what you intended.
I don't think msf files matter here. If you simply erase them they will be rebuilt. They don't dictate what happens, they merely track it.
Hi Zenos said
An observation: / is a directory indicator, so a file name like "Promotions/Assistance" will generate Assistance as a subfolder of Promotions. I doubt that's what you intended.
You are correct (historically).
Older versions of Thunderbird did have issues with file system denoted characters. It was A HUGE NIGHTMARE supporting 30+ people who didn't understand that these characters weren't valid within folder names. All kinds strangeness happening with mailboxes, restoring from backups, Users statements such "if its dangerous, why does Thunderbird allow this?", and "Thunderbird.. so Mickey mouse, why don't we switch to Outlook?" (i prefer Thunderbird as I can usually fix it when it breaks :-)
Aside: running under windows so "/" would actually be "\" for physical sub folders (but Thunderbird does use "/" references internally for folder paths)
As a test (within Thunderbird), I created a bunch of folder under a base "TEST" folder
- test1
- \test2
- test3\
- test4*
- /test5
- &test6
- test7|
- test8,
- test9%
- test10^
- Promotions/Assistance
I've attached some images which shows the Thunderbird folders, the supporting OS files created, and a list of match/miss-match.
As you'll see from the attachments, some Thunderbird folder don't directly match the OS created files; but your able to match the OS to Thunderbird by checking the Thunderbird folder properties.
I don't think msf files matter here. If you simply erase them they will be rebuilt. They don't dictate what happens, they merely track it.
Again, this was the case but I no longer think this is true. Note: There is very little documentation on this, and this is based on my observations with testing within Thunderbird.
As a test, create a few new sub folders under above test.
Shutdown Thunderbird then copied the physical OS file Promotions3b289e8a (“Promotions/Assistance” ) to subfolder, and then the Promotions3b289e8a and Promotions3b289e8a.msf to a different folder. See the attached image for what the folders look like in thunderbird.
The first highlighted Yellow doesn’t have the correct name (no MSF index file) The second Yellow does (Included MSF index file)
If I do the same copies to a new machine with a new copy of Thunderbird, the same holds true for using the correct folder name within thunderbird (without MSF = incorrect, with MSF = correct)
So I’m pretty sure the MSF index file does have some relevance in the naming of unique folder names. I’ve searched through the profile folder, and am not able to locate any other reference to the name translation from OS to Thunderbird (but suspect there may be something else).
Going forward
I was looking into writing a Thunderbird plug-in to fix the issue; but looks to be a bit crazy and the concerns with writing it for a older version of Thunderbird (31.x) which wont be usable in later version of Thunderbird.
So am going the route of generating some windows macro to fix my folder issues (repeating the same 10 keystrokes 500 times).
Will post the results
Paul
Thunderbird "generates" it's folder names directly from the file system. To use some old terminology for clarity, folders are files and sub folders are directories with a sdb extension. Bugzilla has many many bugs about the use of special characters in folder names, some filed 15 years ago I am sure. Some have been fixed. Some not.
But for simplicity it is recommended that you use nothing but alphanumerical characters in folder names. You I notice try to differentiate between unix/linux folder separators and windows. Internally Thunderbird uses both because it is multi platform. So that is a complete waste of time.
But the bug for "/" in folder names was filed 28 September 2007 See https://bugzilla.mozilla.org/show_bug.cgi?id=397875
Some others are listed below. I am sure you can find more.
Folder names ending in .MSF or >SDB https://bugzilla.mozilla.org/show_bug.cgi?id=366789
Mail data and sub-folders are lost, if folder has ending period(dot) or trailing space in its name, when upgrade to Tb 2.0 from Tb 1.5 or former(Linux/Mac) https://bugzilla.mozilla.org/show_bug.cgi?id=379101
Unable to create saved search folder(virtual folder) properly when "/"(slash) in name (and after restart, problems such as garbages of folders, loss of mail folder etc. occur) https://bugzilla.mozilla.org/show_bug.cgi?id=286523
Hi Matt
But for simplicity it is recommended that you use nothing but alphanumerical characters in folder names
I agree (personally don't use special characters based upon Thunderbirds awful user name to system file/folder name implementation in the past and the fear it could be re-introduced); but I support around 30 users who either do it intentionally or accidentally. It's especially hard to enforce rules on uninformed bosses (who sign your pay chq) as to what they can and can't do. This is unacceptable is phrase I often hear :-( Especially when a lot of these users use other mainstream email clients which can do this without issue.
You I notice try to differentiate between unix/linux folder separators and windows. Internally Thunderbird uses both because it is multi platform. So that is a complete waste of time.
Well.. they are different.. no? The fact that certain characters act differently based on OS is something which could easily allow one OS version to act completely different. Zenos response made me think he was providing a Unix/Linux system point of view (which was different than what I'm trouble shooting). Either way, I tested both and under Windows version of thunderbird, the "/" and "\" act correctly when in thunderbird folder names.
But the bug for "/" in folder names was filed 28 September 2007 See https://bugzilla.mozilla.org/show_bug.cgi?id=397875. Some others are listed below. I am sure you can find more.
For the bugs you’ve mentioned, a lot of them are from really old versions of Thunderbird. Look back at any OS such as Linux/Windows, and you’ll also find tons of bugs which could still be there; but a large portion have have most likely been fixed. Thunderbird is generally a lot more stable than past releases.
I'm 100% sure that Thunderbird has been patched/corrected to handle these issues with the characters we're using (ie. I haven't had to deal with any special character folder issues with users since upgrading to at least 31.x..). See my reply previous to Zenos for tests. Aside: Bug ID 397875 is not the symptom I’m seeing (Not loosing anything, nor unexpected OS sub folder names).
-=-=
But my issues isn't so much with the day to day use of Thunderbird/OS folder names, direct issues with special system characters, nor the location or naming in the current Thunderbird (Its been working fine for years on many machines)
The original source of my issue was most likely with a earlier version of Thunderbird and its Outlook Express import which didn't correctly populate the folder names during the import, or the version of thunderbird used a different/incorrect method to store special folder names (which under the 31.x is different).
The issue is with the mapping between special named folders within Thunderbird when migrating to a new physical machine before upgrading to a newer version of Thunderbird. Some folders don't display the user generated name but instead the Thunderbird generated special OS file name is displayed.
This display issue has been correlated back to a few MSF index files not containing the user generated folder name.
Solution: In thunderbird, renaming the issued email folder to something else, and then back again fixes the issue going forward. IE. the MSF contains the folder name, and moving the email file and MSF to the new machine also includes the correct name.
But with this solution; it means I have to check the email folder name (on each new machine) or check the original MSF file to ensure the correct user named email folder is present (and/or rename each folder within Thunderbird to ensure its fixed). I believe there are over 500 folders, so I'd rather not fix it manually (especially if I have other machines to fix in the future)
So I was looking for a better automated solution (Plugin), or some details into the MSF file format with respect to special character folder names, so I could code a fix for now, and in the future should it happen again.
Was hoping for active developer to be monitoring the forums to provide some possible direction.
Thanks for your input. I’ll keep looking for the correct answer and will post if I get it sorted out.
Paul
Modified
One quick question
Have you heard of a plugin or way to export the thunderbird folder pane into a text file?
thundergoesboom said
Thanks for your input. I’ll keep looking for the correct answer and will post if I get it sorted out.
There is no correct answer. There is a bug. Simple as that. Now if you have the time yourself or resources to hire some to fix it. Thank you in advance your effort will be appreciated.
One quick question Have you heard of a plugin or way to export the thunderbird folder pane into a text file?
No.
BTW the MSF files are in the MORK file format.
Some information on MORK https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Mork/What_is_it and https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Mork/Structure
Parser source https://dxr.mozilla.org/thunderbird/source/db/mork/src/morkParser.cpp?q=morkParser.cpp&redirect_type=direct
Inspect prefs.js and you'll find all of /, \ and \\. I became painfully aware of this when converting a profile from a Windows installation to use on a new Linux machine. I'd started looking for any references to "C:\…" in order to set about converting them to "/home/…" and found many more than I expected.
I'd had the mistaken idea that pretty much all of the profile uses relative addressing, helping to make it portable, and I was somewhat disturbed to find that it also encodes full absolute pathnames to mailstores. However these particular absolute pathnames appear to be redundant and may be deleted without any apparent side effects.
I am aware that a few add-ons use absolute pathnames to point to their own resources. Sloppy coding, but manageable.
Anyway, hopping between two OSes has taught me to be ultra careful about folder and file names. I still occasionally use tools that don't fully understand LFNs and so I avoid spaces in filenames as a matter of habit.
The essential failing in Thunderbird is in allowing users to employ unsuitable characters. (Another one is allowing different accounts to have the same name.) Given that Thunderbird is multi-platform, any list of "unsuitable" characters would be more restrictive than you might expect. And then there are the quirks with dots and trailing spaces that Matt has pointed out.
Modified