Files and folders in the profile
This article is a supplement to Profile folder - Thunderbird and provides more detail about files in the Thunderbird profile folder.
The profile folder contains many files and folders. Most are described below, but you may see a few strange files which are probably either due to an add-on or this article not being updated yet. However, if you see a directory name of places.sqlite-wal or places.sqlite-shm then you have a bug which causes severe performance problems.
None of these files should be read-only. If any are read-only it might be a side effect of having put files on removable media, and then copying them or restoring them back to your profile.
|Name||Status||Description||.autoreg||Temporary empty file that signals a change in the installed extensions.||.parentlock (Mac OS X)||See parent.lock||abook.mab||Personal Address Book
Used by add-ons manager.
Obsolete. Used by add-ons manager.
Suspect it is used with the blocking list
Added list of dangerous extensions. Replaced by kinto.sqlite around version 60.
Used by the Lightning add-on if the "Cache" option is enabled in the calendar properties, to provide offline support. 
Obsolete. Used for Security certificates. It works together with key3.db, and should be copied together.
New file used for Security certificates. It works together with key4.db, and should be copied together.
This is an optional file used to store a security exception. It appears to store the host name , thus preventing you from creating a security exception for a rotating SMTP server.
Unknown. There is a similar file in Firefox profiles used by localstorage/DOMStorage to store about: pages. 
Stores the version and path of the application this profile was last used with. When the profile is loaded with an application with a different version/path, the XPCOM components registration process is triggered. Thunderbird 3.x appears to use the version information to decide whether to display additional tabs such as the migration assistant and whats new. This file is automatically generated and can safely be deleted.
Obsolete. Lists extension folders with XPCOM components. Replaced with extensions.ini in Thunderbird 1.5 and above.
Lists registered XPCOM components. Automatically regenerated whenever XPCOM registration process is triggered.
The permissions.sqlite and content-prefs.sqlite files store the permissions for what what remote content can be displayed. This used to be stored in the address book.
custom-strings.txt in chrome
It can be used to replace text in the user interface. 
Stores all cookies.
Journal file for cookies.sqlite
cookies.sqlite-shm , cookies.sqlite-wal
write-ahead log files for cookies.sqlite
deleted.sqlite in calendar-data
Used by Lightning add-on. No information on what its used for.
Download history. Can be deleted to resolve slow downloads or program hangs (Bug 159107)
Download history. Replaced downloads.rdf in version 3.
Obsolete. Lists installed extensions, their IDs, and the folders they are installed to, along with their last-modify time. It is used, for example, to register extensions installed by dropping a folder into one of known install locations. This file is automatically regenerated and can be deleted to resolve various issues.
Lists folders of installed extensions and themes. The file is automatically generated by nsExtensionManager and is used by low-level code to detect chrome packages and XPCOM components provided by installed addons. It can be safely deleted to resolve various issues.
Records some errors reported by the Extension Manager.
Obsolete. Installed extension information. It can be deleted to remove "ghost" entries from the extension list  and to resolve various other issues.
Obsolete. Stores data about installed extensions, not clear yet if it replaces or supplements the extensions.rdf file.
Stores your RSS subscriptions. Its in in the Mail\feeds directory
Records RSS feeds. Its in in the Mail\feeds directory
Message filter log. If filter logging is enabled its stored in the accounts directory.
Used by the folder pane.
rollback transaction journal for global-messages-db.sqlite (temporary file)
An index of all of your messages created by the global search engine (gloda). Can be deleted if db is corrupt or search isn't working correctly - it will be rebuilt.
Collected addresses address book
hostinfo.dat in News
Contains all the newsgroups available for the current server
Junk mail log for that account
Obsolete. Key database. Works together with cert8.db, and should be copied together.
New file used for the Key database. Works together with cert9.db, and should be copied together.
Optional. Created if you install a persona (light weight themes).
Obsolete. Replaced by xulstore.json in one of the updates to version 38. It stores the toolbar, window layout and size/position settings. It can be safely deleted to resolve various issues.
local.sqlite in calendar-data
Internal calendar data (in SQLite format) if you use the Lightning extension.
Stores encrypted passwords, and requires key4.db and cert9.db to work. Replaces signons.sqlite, which had replaced signons.txt.
Defines your current message view (you can customize it)
Used by Menu Editor extension
Action to perform when downloading certain types of files. Can be deleted to reset download actions.
msgFilterRules.dat in ImapMail, Mail, News
Mail folder cache of recent folders and visited links. It is also used to store the move-to recent history. It can be safely deleted to resolve various issues. A corrupt version can cause messages in offline folders to be lost. .
Marker showing that the current profile is in use. Can be deleted to unlock the profile.
Personal spelling dictionary
The permissions.sqlite and content-prefs.sqlite files store the permissions for what remote content can be displayed. Lightning also uses that file.
Security module database. cert8.db, key3.db, and secmod.db were replaced by cert9.db, key4.db, and pkcs11.txt. There have been several reports of passwords not being saved when upgrading to version 60.2.1 that were solved by deleting the pkcs11.txt file. 
A SQLite database used to store annotations, bookmarks, favicons, input history, keywords, and browsing history. Thunderbird appears to use it mainly to record what links you clicked on in mail messages.
Write-ahead log files for places.sqlite. You should not have a places.sqlite-shm and a places.sqlite.wal directory (instead of files with that name). If you do that causes Thunderbird to be extremely slow. Its not clear what creates them, but the workaround is to delete those two directories. 
popstate.dat in Mail
Keeps track of which messages have been left on the POP3 server
All preferences, including account settings and mail folder locations. See: Modify Thunderbird settings
Public keys (yours and any you collected) for the Enigmail (OpenPGP) extension.
If msgFilterRules.dat can't be read it backs it up in that file and creates a new msgFilterRules.dat.
Not clear what it is since there is no search.sqlite to cache. 
A compressed file used to store the list of search providers (OpenSearch). It is not editable. You need to install a search provider add-on and delete the old copy of this file to add a search provider. When restarted Thunderbird will build a new copy of the file. You can no longer add a search provider (such as Google or DuckDuckGo) by just adding a XML file to the searchplugins directory in the profile due to support for that being removed in the Mozilla toolkit. There is a patch to Thunderbird being developed to restore that feature.  
Obsolete. Security module database. cert8.db, key3.db, and secmod.db were replaced by cert9.db, key4.db, and pkcs11.txt.
Private keys for the Enigmail (OpenPGP) extension.
Default windows layout. This includes data on what tabs are open. Thunderbird (3.0 and later) deletes this file after reading the settings. Its re-created and the layout saved when Thunderbird terminates normally.
Obsolete. Replaced by logins.json. It stores encrypted saved passwords, and requires key3.db and cert8.db to work. If you delete it, also delete key3.db and cert8.db. Thunderbird used to use signons.txt or signons3.txt.
Internal calendar data (in SQLite format) if you use the Lightning extension. Its been replaced by local.sqlite but is still maintained for compatibility in case you switch between different Thunderbird+Lightning versions.
Custom training for Junk Mail Controls
Bayes traits training data used by the TaQuilla add-on
Temporary file used when modifying message filters.
The "Unsent Messages." mbox file in ..\Mail\Local Folders is displayed as the Outbox folder by recent versions of Thunderbird. That folder is used to queue unsent messages if you use "Send Later".
Obsolete. Contains information on known phishing sites.
Contains information on known phishing sites. Seems to be a replacement for urlclassifier2.sqlite, which replaced urlclassifier.sqlite.
User-set, overrides the preferences in prefs.js
userChrome.css in chrome
User-set CSS to change the way the application looks
userContent.css in chrome
User-set CSS to change the way webpages look
userChrome.js in chrome
Saved Search folder settings
Contains DOM storage data. Its used similar to cookies by web sites.
Obsolete. Lists registered XPCOM interfaces. Automatically regenerated whenever XPCOM registration process is triggered.
Obsolete. A cache file for components (XPC)
Obsolete. See XUL.mfl file
Obsolete. Cached user interface data. Can be deleted to resolve various issues.
XUL FastLoad File (Mac OS X)
Obsolete. See XUL.mfl
Toolbar, window layout and size/position settings. It can be safely deleted to resolve various issues.
Files without specific names
|(number).s||Obsolete. It used to be used for saving passwords. The "(number).s" value was specified by the signon.SignonFileName preference.|
|* in ImapMail, Mail, and News (no file extension)||Mbox files. They are text files that contain all of the messages for that folder. They are named after the folder, but have no file extension. "inbox." is a mbox file for the inbox folder.|
|*.mab other than abook.mab and history.mab||User-created or imported address books.|
|*.msf in ImapMail, Mail, and News||Index files for mail messages. They contain a cache of the folder listing plus a few folder specific settings.|
|*.mozeml||Each file is a partial copy (up to 20kb) of a message in the mail folder, stored in a .mozmsgs subdirectory. It is used by the optional Spotlight Integration component under OSX. It's deleted when the message in the mbox is deleted. |
|*.rc in News||Subscribed groups.|
|*.tha||The MoreFunctionsForAddressBook add-on uses this file extension for contacts.|
|*.thm||The MoreFunctionsForAddressBook add-on uses this file extension for mailing lists.|
|*.wdseml||Each file is a partial copy (up to 49KB) of a message in the mail folder, stored in a .mozmsgs subdirectory. It is used by Windows Search Integration (requires Vista or a later version of Windows). They're actually renamed .eml files. You can disable this feature by unchecking Tools -> Options -> Advanced -> General -> System Integration -> "Allow Windows Search to search messages". |
|*.xpi in Extensions||.xpi files are renamed .zip files used by add-ons. Usually they're unzipped and the files stored in a child directory (its name is the GUID that uniquely identifies that add-on) when the add-on is installed but some (such as IgnoreAero and Add-on Compatibility Reporter) aren't.|
Files outside the profile folder
|application.ini||The installation directory has an application.ini file with general information about what build you are using and additional entries that control whether the profile manager and extension manager are enabled.|
|custom-strings.txt||File in the chrome subdirectory in the programs installations directory used to replace strings.  |
|MozillaMailnews||Directory in the systems temporary files directory.|
|nsmail.eml, nsmail.tmp, nsmail.html||Temporary files created in MozillaMailnews when sending a message. If you get an error message about being unable to open the temp file nsmail.tmp when sending a message try re-configuring your anti-virus program not to scan email messages.|
C:\Users\user_name\AppData\Local\Thunderbird\updates is the directory used to store updates when upgrading under Windows 10. This is not the same directory tree as %APPDATA%. The directory has one or more child directories whose name is a 16 hexadecimal digit string (a GUID). Each of those child directories is for a separate channel (release, beta, daily etc.) and has a updates child directory plus a "updates.xml" and a "active-update.xml" file. If an update gets caught in a loop you can break the cycle by deleting the appropriate "updates.xml" file and its child directories. However, its usually easier to just delete the entire ..\Thunderbird\updates directory. So far Thunderbird re-creates that directory as necessary if its missing. Similar directories are created for other operating systems.
|omni.ja||It contains most of the default preference files that used to be stored in in the defaults\pref subdirectory in the Thunderbird program directory such as mailnews.js and all-thunderbird.js. Its in the root of the program directory. Its contents can be viewed using any program that knows how to open a .zip archive file. It used to be called omni.jar but was renamed because WindowΓÇÖs System Restore does not backup .jar files. |
|pluginreg.dat||Registration of plugin MIME types. It's located in the "Thunderbird" directory containing the profiles.|
|profiles.ini||Keeps track of the profile folder location. It's located in the "Thunderbird" directory containing the profiles. It can be edited to point to a moved profile folder. If deleted, profiles.ini will be regenerated along with a new default profile folder upon program restart.|
|registry.dat||Obsolete. Keeps track of profile folder location in previous Thunderbird versions. It's located in the "Thunderbird" directory containing the profiles.|
You can store messages outside of the profile by changing the "Local directory" in Account Settings -> Server Settings to a directory outside of the profile. If you want to do that you must move the existing files from the old local directory to the new location yourself because the modifying settings only tells Thunderbird where to look for the files. Be careful about changing this location:
- Some locations can be bad, including those which are dangerous that Thunderbird will automatically prevent.
- Make sure you backup the directory, because programs designed to back up Thunderbird or mozilla profiles will not backup folders that are outside the profile structure.
- Think about whether you want to set a folder exclusion for the new location in your anti-virus and anti-malware programs if they normally don't scan your profile.