Difference between revisions of "Thunderbird"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
(Autoconfig: with Active Directory)
(Silent installation of Thunderbird extensions: does not work with newer Versions above V4)
Line 411: Line 411:
  
 
When Thunderbird is next started, the new extension is detected automatically - you can verify this in Thunderbird using Tools -> Extensions.
 
When Thunderbird is next started, the new extension is detected automatically - you can verify this in Thunderbird using Tools -> Extensions.
 +
 +
'''NOTE''': The above Text is valid for Thunderbird before '''Version 4'''. Since V.4 xpi's does not have to extract any more, since thunderbird reads directly out of the packaged file. Unfortunately I found no way to completely silent the deploy. After first start, all extensions in subdir \extensions are deactivated. If a profile already exists and new extensions is found in the directory, the user get ask if he want to activate the extension. --[[User:Konus|Konus]] 17:32, 27 January 2012 (CET)
  
 
= Silent installation of dictionaries (spell-checking) =
 
= Silent installation of dictionaries (spell-checking) =

Revision as of 16:32, 27 January 2012

Mozilla Thunderbird is an email client available from Mozilla Messaging. It has the ability to install various extensions such as the Lightning calendar.

WPKG Installers

Thunderbird 9

<package 
  id="thunderbird"  
  name="Mozilla Thunderbird"  
  revision="%version%"  
  reboot="false"  
  priority="10">

  <variable name="version" value="9.0.1" />
  <variable name="architecture" value="x86" />
  <variable name="locale" value="fi" />
 
  <check type="uninstall" condition="exists" path="Mozilla Thunderbird  %version% (%architecture% %locale%)" />

  <install cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <upgrade cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </upgrade>

  <upgrade cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <remove cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </remove>

  <!-- for 32bit and 64bit System -->
  <remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" "%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" -ms' />
  <remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\Mozilla Thunderbird\uninstall\helper.exe" "%PROGRAMFILES(x86)%\Mozilla Thunderbird\uninstall\helper.exe" -ms' />

</package>

Thunderbird 6

Version 6 installs the same way as previous versions.

<package 
  id="thunderbird"  
  name="Mozilla Thunderbird"  
  revision="%version%"  
  reboot="false"  
  priority="0">
 
  <variable name="version" value="6.0" />

  <check type="uninstall" condition="exists" path="Mozilla Thunderbird (%version%)" />
 
  <install cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <upgrade cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </upgrade>

  <upgrade cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <remove cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </remove>

  <!-- for 32bit and 64bit System -->
  <remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" "%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" -ms' />
  <remove cmd='%COMSPEC% /C if exist "%PROGRAMFILES(x86)%\Mozilla Thunderbird\uninstall\helper.exe" "%PROGRAMFILES(x86)%\Mozilla Thunderbird\uninstall\helper.exe" -ms' />

</package>

Thunderbird 5

Versions 5.0 install the same way as version 2.0. This installer first kills a running Thunderbird in case WPKG is being run whilst you're logged in.

<package 
  id="thunderbird"  
  name="Mozilla Thunderbird"  
  revision="%version%"  
  reboot="false"  
  priority="0">
 
  <variable name="version" value="5.0" />

  <check type="uninstall" condition="exists" path="Mozilla Thunderbird (%version%)" />
 
  <install cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <upgrade cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </upgrade>

  <upgrade cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <remove cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </remove>

  <remove cmd='"%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" /S' />
</package>


Thunderbird 3

Versions 3.0 and 3.1 install the same way as version 2.0. This installer first kills a running Thunderbird in case WPKG is being run whilst you're logged in.

<package 
  id="thunderbird"  
  name="Mozilla Thunderbird"  
  revision="%version%"  
  reboot="false"  
  priority="0">
 
  <variable name="version" value="3.1.11" />

  <check type="uninstall" condition="exists" path="Mozilla Thunderbird (%version%)" />
 
  <install cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <upgrade cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </upgrade>

  <upgrade cmd='"%SOFTWARE%\thunderbird\Thunderbird Setup %version%.exe" -ms' />
 
  <remove cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </remove>

  <remove cmd='"%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" /S' />
</package>

Thunderbird 2.x

<package 
      id="thunderbird" 
      name="Mozilla Thunderbird 2.0.0.24" 
      revision="XXX" 
      reboot="false" 
      priority="0">
 
  <check type="uninstall" condition="exists" path="Mozilla Thunderbird (2.0.0.24)" />
 
  <install cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </install>
  <install cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.24.exe" -ms' />
 
  <upgrade cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </upgrade>
  <upgrade cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.24.exe" -ms' />

  <remove cmd='taskkill /F /IM thunderbird.exe'>
    <exit code="0" />
    <exit code="128" />
  </remove>
  <remove cmd='"%PROGRAMFILES%\Mozilla Thunderbird\uninstall\helper.exe" /S' />
</package>

Configuration INI

Configuration ini file: <path to setup executable> [/INI=<full path to configuration ini file>]

You can specify some options for installing Thunderbird by using a configuration ini file. When specifying a configuration ini file the installer will always run silently. When specifying a Configuration ini file other command line switches should not be specified and may have unexpected results

Configuration ini file syntax and available settings:

[Install]
;
; Remove the semicolon (;) to un-comment a line.
;
; The name of the directory where the application will be installed in the
; system's program files directory. The security
; context the installer is running in must have write access to the
; installation directory. Also, the directory must not exist or if it exists
; it must be a directory and not a file. If any of these conditions are not met
; the installer will abort the installation with an error level of 2. If this
; value is specified then InstallDirectoryPath will be ignored.
; InstallDirectoryName=Mozilla Thunderbird

; The full path to the directory to install the application. The security
; context the installer is running in must have write access to the
; installation directory. Also, the directory must not exist or if it exists
; it must be a directory and not a file. If any of these conditions are not met
; the installer will abort the installation with an error level of 2.
; InstallDirectoryPath=c:\program files\mozilla thunderbird\

; By default all of the following shortcuts are created. To prevent the
; creation of a shortcut specify false for the shortcut you don't want created.

; Create a shortcut for the application in the current user's QuickLaunch
; directory.
; QuickLaunchShortcut=false

; Create a shortcut for the application on the desktop. This will create the
; shortcut in the All Users Desktop directory and if that fails this will
; attempt to create the shortcuts in the current user's Start Menu directory.
; DesktopShortcut=false

; Create shortcuts for the application in the Start Menu. This will create the
; shortcuts in the All Users Start Menu directory and if that fails this will
; attempt to create the shortcuts in the current user's Start Menu directory.
; StartMenuShortcuts=false

; The directory name to use for the StartMenu folder (not available with
; Firefox 4.0 and above - see note below).
; note: if StartMenuShortcuts=false is specified then this will be ignored.
; StartMenuDirectoryName=Mozilla Thunderbird

Making Thunderbird the default mail and news client

If you want to make Mozilla Thunderbird a default mail and news client, add these registry entries:

Note: Make sure to change the path MOZILL~2 to MOZILL~1 if you have installed Thunderbird before Firefox or any other Mozilla product. (check on the command line by typing "cd %programfiles%\MOZILL~2")

REGEDIT4

[HKEY_CLASSES_ROOT\mailto]
@="URL:MailTo Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\mailto\DefaultIcon]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE,0"
[HKEY_CLASSES_ROOT\mailto\shell\open\command]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE -compose %1"
[HKEY_CLASSES_ROOT\news]
@="URL:News Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\news\DefaultIcon]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE,0"
[HKEY_CLASSES_ROOT\news\shell\open\command]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE -mail %1"
[HKEY_CLASSES_ROOT\nntp]
@="URL:NNTP Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\nntp\DefaultIcon]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE,0"
[HKEY_CLASSES_ROOT\nntp\shell\open\command]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE -mail %1"
[HKEY_CLASSES_ROOT\snews]
@="URL:Snews Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\snews\DefaultIcon]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE,0"
[HKEY_CLASSES_ROOT\snews\shell\open\command]
@="@ShortProgFiles\\MOZILL~2\\THUNDE~1.EXE -mail %1"
[HKEY_CURRENT_USER\Software\Clients\Mail]
@="Mozilla Thunderbird"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail]
@="Mozilla Thunderbird"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\News]
@="Mozilla Thunderbird"

To register it with WPKG, save it as thunderbird.reg, and add these entries to your Thunderbird WPKG item:

  <install cmd='regedit /s %SOFTWARE%\Thunderbird\thunderbird.reg' />
  
  <upgrade cmd='regedit /s %SOFTWARE%\Thunderbird\thunderbird.reg' />

Alternatively, you can use this jscript file to use full path names:

var WshShell = WScript.CreateObject("WScript.Shell");
var key;
var value;

key = "HKEY_CLASSES_ROOT\\mailto\\";
value = "URL:MailTo Protocol";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\mailto\\URL Protocol";
value = "";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\mailto\\defaultIcon\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\Thunderbird.exe,0";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\mailto\\shell\\open\\command\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\\Thunderbird.exe -compose %1";
WshShell.RegWrite(key, value, "REG_SZ");


key = "HKEY_CLASSES_ROOT\\news\\";
value = "URL:News Protocol";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\news\\URL Protocol";
value = "";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\news\\defaultIcon\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\Thunderbird.exe,0";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\news\\shell\\open\\command\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\\Thunderbird.exe -mail %1";
WshShell.RegWrite(key, value, "REG_SZ");


key = "HKEY_CLASSES_ROOT\\nntp\\";
value = "URL:NNTP Protocol";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\nntp\\URL Protocol";
value = "";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\nntp\\defaultIcon\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\Thunderbird.exe,0";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\nntp\\shell\\open\\command\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\\Thunderbird.exe -mail %1";
WshShell.RegWrite(key, value, "REG_SZ");


key = "HKEY_CLASSES_ROOT\\snews\\";
value = "URL:Snews Protocol";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\snews\\URL Protocol";
value = "";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\snews\\defaultIcon\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\Thunderbird.exe,0";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_CLASSES_ROOT\\snews\\shell\\open\\command\\";
value = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") + "\\Mozilla Thunderbird\\Thunderbird.exe -mail %1";
WshShell.RegWrite(key, value, "REG_SZ");


key = "HKEY_CURRENT_USER\\Software\\Clients\\Mail\\";
value = "Mozilla Thunderbird";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Clients\\Mail\\";
value = "Mozilla Thunderbird";
WshShell.RegWrite(key, value, "REG_SZ");

key = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Clients\\News\\";
value = "Mozilla Thunderbird";
WshShell.RegWrite(key, value, "REG_SZ");


Then add this to your WPKG installer:

  <install cmd='cscript %SOFTWARE%\Thunderbird\setdefault.js' />
  <upgrade cmd='cscript %SOFTWARE%\Thunderbird\setdefault.js' />


Silent installation of Thunderbird extensions

To silently install Thunderbird extensions, do the following:

  • Download the extension
  • The .xpi file is a zipped up set of files. Extract the files using any zip unarchiving program
  • Open the file install.rdf that you just extracted
  • In the section labeled 'Description about="urn:mozilla:install-manifest"', and within that the item labeled 'em:id', copy the long ID number, including the curly brackets, for example '{847b3a00-7ab1-11d4-8f02-006008948af5}'
    • Do not use 'em:id' found inside a "em:targetApplication""/em:targetApplication" block! This appears in the lightning.xpi
  • Create a directory using this ID number, including the curly brackets, for example '{847b3a00-7ab1-11d4-8f02-006008948af5}' and put all the extension's files in there
    • (Alternatively you can find the ID number by installing the extension into Thunderbird then looking for it in %PROGRAMFILES%\Mozilla Thunderbird\extensions\, but this is potentially more complicated because you have to look through the install.rdf file of each installed extension to find which extension each relates to)
  • Copy your extension directory to your server
  • The installer then needs to simply copy this directory to %PROGRAMFILES%\Mozilla Thunderbird\extensions. The WPKG installer will look like this:
<package
     id="thunderbird-quicktext"
     name="Quicktext extension"
     revision="1"
     reboot="false"
     priority="0">
 
    <check type="file" condition="exists" path="%PROGRAMFILES%\Mozilla Thunderbird\extensions\{8845E3B3-E8FB-40E2-95E9-EC40294818C4}\install.rdf" />
 
    <install cmd='cmd /C xcopy /Q /I /E /Y "%SOFTWARE%\thunderbird\extensions\quicktext\{8845E3B3-E8FB-40E2-95E9-EC40294818C4}" "%PROGRAMFILES%\Mozilla Thunderbird\extensions\{8845E3B3-E8FB-40E2-95E9-EC40294818C4}"' />
 
    <upgrade cmd='cmd /C xcopy /Q /I /E /Y "%SOFTWARE%\thunderbird\extensions\quicktext\{8845E3B3-E8FB-40E2-95E9-EC40294818C4}" "%PROGRAMFILES%\Mozilla Thunderbird\extensions\{8845E3B3-E8FB-40E2-95E9-EC40294818C4}"' />
 
    <remove cmd='cmd /C rmdir /S /Q "%PROGRAMFILES%\Mozilla Thunderbird\extensions\{8845E3B3-E8FB-40E2-95E9-EC40294818C4}"' />
</package>

When Thunderbird is next started, the new extension is detected automatically - you can verify this in Thunderbird using Tools -> Extensions.

NOTE: The above Text is valid for Thunderbird before Version 4. Since V.4 xpi's does not have to extract any more, since thunderbird reads directly out of the packaged file. Unfortunately I found no way to completely silent the deploy. After first start, all extensions in subdir \extensions are deactivated. If a profile already exists and new extensions is found in the directory, the user get ask if he want to activate the extension. --Konus 17:32, 27 January 2012 (CET)

Silent installation of dictionaries (spell-checking)

Thunderbird 1.5

Mozilla Thunderbird keeps its (MySpell) dictionaries in %PROGRAMFILES%\Mozilla Thunderbird\components\myspell\.

By default, it only has an English dictionary (for licensing reasons).

Installing a new dictionary is simple - just copy the dictionary files for a given language to that folder.

Installing a German dictionary

  • Download a German dictionary from http://www.thunderbird-mail.de/hilfe/dokumentation1.5/allg_rechtschreibung.php
  • The file is a .xpi file (a renamed .zip file). Uncompress it using any unzipping program. Inside you'll find .aff and .dic files - these are the core dictionary files. (There is also a .txt file (some info), and a .js file (the installer, used if you install the dictionary using Thunderbird))
  • Copy the core dictionary files into %PROGRAMFILES%\Mozilla Thunderbird\components\myspell\.
  • The WPKG installer to install this dictionary into Thunderbird should look like this:
<package
     id="thunderbird-woerterbuch"
     name="Woerterbuch fuer Thunderbird"
     revision="1"
     reboot="false"
     priority="0">
 
     <check type="file" condition="exists" path="%PROGRAMFILES%\Mozilla Thunderbird\components\myspell\Deutsch - neue Rechtschreibung.aff" />
     <check type="file" condition="exists" path="%PROGRAMFILES%\Mozilla Thunderbird\components\myspell\Deutsch - neue Rechtschreibung.dic" />
     <check type="file" condition="exists" path="%PROGRAMFILES%\Mozilla Thunderbird\components\myspell\Deutsch - neue Rechtschreibung.txt" />
 
     <install cmd='cmd /C xcopy /Q /I /E /Y "%SOFTWARE%\thunderbird\extensions\woerterbuch\*" "%PROGRAMFILES%\Mozilla Thunderbird\components\myspell\"' />
 
     <upgrade cmd='cmd /C xcopy /Q /I /E /Y "%SOFTWARE%\thunderbird\extensions\woerterbuch\*" "%PROGRAMFILES%\Mozilla Thunderbird\components\myspell\"' />
 
     <remove cmd='cmd /C del "%PROGRAMFILES%\Mozilla Thunderbird\components\myspell\Deutsch - neue Rechtschreibung.*"' />
</package>

Thunderbird 2.0

Thunderbird 2.0 has its dictionaries in %PROGRAMFILES%\Mozilla Thunderbird\dictionaries

<package id="thunderbird-spellcheck-dictionary-en-gb" name="Thunderbird spellchecker dictionary English (GB)" revision="4" reboot="false" priority="3">
<depends package-id="thunderbird"/>
<check type="file" condition="exists" path="%PROGRAMFILES%\Mozilla Thunderbird\dictionaries\en-GB.dic"/>
<install cmd="cmd /c "IF NOT EXIST "%PROGRAMFILES%\Mozilla Thunderbird\dictionaries" mkdir "%PROGRAMFILES%\Mozilla Thunderbird\dictionaries"""/>
<install cmd="cmd /c "copy "%SOFTWARE%\thunderbird-dictionaries\*.*" "%PROGRAMFILES%\Mozilla Thunderbird\dictionaries\"""/>
<upgrade cmd="cmd /c "IF NOT EXIST "%PROGRAMFILES%\Mozilla Thunderbird\dictionaries" mkdir "%PROGRAMFILES%\Mozilla Thunderbird\dictionaries"""/>
<upgrade cmd="cmd /c "copy "%SOFTWARE%\thunderbird-dictionaries\*.*" "%PROGRAMFILES%\Mozilla Thunderbird\dictionaries\"""/>
</package>

Alternatively, download the Thunderbird dictionary (download the right one, i.e. the German dictionary from the official webpage won't work) and install it like this:

thunderbird.exe -install-global-extension "x:\software\deutsches_w_ouml_rterbuch-1.0.1-fx+zm+tb.xpi"

Thunderbird Configuration

Types Of Prefs

userpref("pref",<value>); - per-user preferences

pref("pref",<value>); - system-wide preferences that can be over-ridden by users

lockpref("pref",<value>); - system-wide preferences that cannot be over-ridden by users


Methods Of Applying Prefs

Per-person

Use a prefs file in the user's profile directory. You shouldn't edit prefs.js, as that can be overwritten by Thunderbird, instead create and use user.js as that will never be altered by Thunderbird itself. Use the syntax userpref("pref",<value>); here.

System-wide

File in %PROGRAMFILES%\Mozilla thunderbird\defaults\pref\ directory

Thunderbird processes the config files in this directory in reverse alphabetical order. Don't add your prefs to Thunderbird's own pref files as these will be lost on an upgrade of Thunderbird, instead create a file called, for example, all-thunderbird-custom.js, saved in %PROGRAMFILES%\Mozilla thunderbird\defaults\pref\. These preferences can be over-ridden by users. An example file is:

// Options -> Advanced -> Update -> Automatically check for updates to : Installed Extensions and Themes
pref("extensions.update.enabled", false);


Autoconfig

See: http://mit.edu/~thunderbird/www/maintainers/autoconfig.html

Create a customized text file named thunderbird.cfg and put it in the thunderbird executable folder:

'%programfiles%\mozilla thunderbird\thunderbird.cfg'

Edit %programfiles%\mozilla thunderbird\greprefs\all.js addding the following values:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "thunderbird.cfg");

The file can optionally be byteshifted an optional security feature, using general.config.obscure_value.

You can add functionality to the prefs by including javascript within the file.

Method 1

Example thunderbird.cfg with automatically assigned values from ldap.

//put everything in a try/catch
try {
 
// 1) env variables
if(getenv("USER") != "") {
   // *NIX settings
   var env_user    = getenv("USER");
   var env_home    = getenv("HOME");
 } else {
   // Windows settings
   var env_user    = getenv("USERNAME");
   var env_home    = getenv("HOMEPATH");
 }
  var env_mozdebug= getenv("MOZILLA_DEBUG");
 
 
// 2) set default general preferences

//Account
defaultPref("mail.identity.id1.draft_folder", "imap://" + env_user + "@imap.url/Drafts");
defaultPref("mail.identity.id1.fcc_folder", "imap://" + env_user + "@imap.url/Sent");

//Junk
defaultPref("mail.server.server2.spamActionTargetAccount", "imap://" + env_user + "@imap.url");
defaultPref("mail.server.server2.spamActionTargetFolder", "mailbox://" + env_user + "@imap.url/Junk");

//SMTP
defaultPref("mail.identity.id1.stationery_folder", "imap://" + env_user + "@imap.url/Templates");

 
//SMTP general
lockPref("mail.smtpserver.smtp1.hostname", "smtp.url");
lockPref("mail.smtpserver.smtp1.port", 25);

 
//General
defaultPref("network.proxy.autoconfig_url", "http://proxy.url/proxy.pac");
defaultPref("network.proxy.type", 2);

 
/* 3) define here (because if set after "4)" below it doesn't work !) processLDAPValues which is eventually called by getLDAPAttributes() just below,
 check getLDAPAttributes() code from $MOZILLA_HOME/defaults/autoconfig/prefcalls.js to see the inside call to "user defined" processLDAPValues
*/
function processLDAPValues (values) {
 if(values) {
      // set the global var with the values returned from the LDAP query
      ldap_values = values;
    var uid = getLDAPValue ( values ,"uid" );
    var cn = getLDAPValue ( values ,"cn" );
    var mail = getLDAPValue ( values ,"mail" );
    var URL =  getLDAPValue ( values ,"labeledURI" );
 
// Those ldap variables are only available is this processLDAPValues context !
// so we set the preferences that need them here .
defaultPref("mail.identity.id1.useremail", mail);
defaultPref("mail.server.server2.name", mail );
defaultPref("mail.identity.id1.fullName", cn );
//Debug with popup error messages doesn't work anymore :-( !!
var env_mozdebug= getenv("MOZILLA_DEBUG");
if (env_mozdebug) {displayError("NO ERROR , just a debug, cn =" + cn + " and mail = " + mail ); }
    }
  }
// 4) Call Ldap servers to get Ldap Attributes (mail & cn) , this will finally call processLDAPValues , "3)" just above.
  getLDAPAttributes("ldap.url","ou=people,o=Comapny","uid=" + env_user,"uid,cn,mail,labeledURI");
 
// Close the try, and call the catch()
} catch(e) {
  displayError("lockedPref", e);
}
Method 2 (use for Active Directory)

Since method 1 did not work for me, even after I changed the attribute names, I found an other example. I use SSL here, so if you don't remove the SSL-part. It is generally a good idea to configure a client manually and then look inside about:config for the settings.

//Note: for accessing the Active Directory of Windows Server later than 2000
//it is necessary to allow anonymous read access. Please see
//(German) http://interop.blog.de/2010/02/13/kapitel-1-ldap-anfragen-linux-ad-8001564/ 
//or search the net how to do it. If it is not possible to give access to anonymous,
//you have to enable this function first, please see
//http://technet.microsoft.com/de-de/library/cc816788(WS.10).aspx
//
//
//put everything in a try/catch
try {

var userInfo = new Object();  // This will hold LDAP results
 
userInfo.envUser = getenv("USERNAME");   // USERNAME
userInfo.envHome = getenv("HOME");       // User home directory
 
var ldapHost = "example.com";
var ldapBase = "dc=company,dc=local";
 
if( userInfo.envUser )
{  var ldapFilter = "sAMAccountName=" + userInfo.envUser;  }
else
{  throw("Couldn't get UID from the environment");  }

// LDAP attributes to retrieve from the server
var ldapAttrs = new Array( "cn", "mail", "sAMAccountName" ); // add more attributes here, if needed)

// Define how to process LDAP results before we make the call
function processLDAPValues(queryResults)
{  if( queryResults )
   {  // Build the userInfo object for later use
      for( var attr in ldapAttrs )
      {  userInfo[ ldapAttrs[attr] ] = getLDAPValue( queryResults, ldapAttrs[attr] );  }
   } else
   {  throw( "No LDAP results" );  }
}

// Call upon LDAP for the values in ldapAttrs array, 
// Uses the previous processLDAPValues()
getLDAPAttributes( ldapHost, ldapBase, ldapFilter, ldapAttrs.join(",") );

// create account
// see also http://blog.deanandadie.net/2010/06/easy-thunderbird-account-management-using-mcd/
// Identity
defaultPref("mail.identity.id1.fullName", userInfo.cn );
defaultPref("mail.identity.id1.smtpServer", "smtp1" );
defaultPref("mail.identity.id1.useremail", userInfo.mail );

// IMAP server settings
defaultPref("mail.server.server1.hostname", "myImap.server.com" );
defaultPref("mail.server.server1.name", userInfo.mail );
defaultPref("mail.server.server1.port", 993 );
defaultPref("mail.server.server1.socketType", 3 );
defaultPref("mail.server.server1.type", "imap" );
defaultPref("mail.server.server1.userName", userInfo.mail );

// SMTP server settings
defaultPref("mail.smtpserver.smtp1.authMethod", 3 );
defaultPref("mail.smtpserver.smtp1.description", "my Company Name" );
defaultPref("mail.smtpserver.smtp1.hostname", "mySmtp.server.com" );
defaultPref("mail.smtpserver.smtp1.port", 465 );
defaultPref("mail.smtpserver.smtp1.try_ssl", 3 );
defaultPref("mail.smtpserver.smtp1.username", userInfo.mail );

// Glue it all together
defaultPref("mail.account.account1.identities", "id1" );
defaultPref("mail.account.account1.server", "server1" );
defaultPref("mail.accountmanager.accounts", "account1" );
defaultPref("mail.accountmanager.defaultaccount", "account1" );
defaultPref("mail.smtp.defaultserver", "smtp1" );
defaultPref("mail.smtpservers", "smtp1" );

// Close the try, and call the catch()
} catch(e) {
  displayError("lockedPref", e);
}

--Konus 16:19, 19 January 2012 (CET)

Prefs

Disable Auto Update

// Options -> Advanced -> Update -> Automatically check for updates to : Installed Extensions and Themes
pref("extensions.update.enabled", false);

// Options -> Advanced -> Update -> Automatically check for updates to : Thunderbird
pref("app.update.enabled", false);

// Options -> Advanced -> Update -> Automatically check for updates to : Search Engines
pref("browser.search.update", false);

See the whole "HowTO prevent Autoupdate on Firefox / Thunderbird" thread: http://lists.wpkg.org/pipermail/wpkg-users/2007-February/001207.html

See bug [1].


Disable Migration Assistant and What's New page

To prevent the Migration Assistant and the What's New page from showing after upgrades, use:

pref("mail.ui.show.migration.on.upgrade", false);
pref("app.update.showInstalledUI", false);
pref("browser.startup.homepage_override.mstone", "ignore");
pref("mailnews.start_page_override.mstone", "ignore");

Disable Know Your Rights

To prevent the "Know Your Rights" info bar at the bottom of the application, use:

pref("mail.rights.version", 1);

Disable 'Auto-sync' and 'Work Offline'

Tame Thunderbird 3.0.5 or 3.1.0 so that it doesn't automatically sync IMAP mail to a person's workstation in an organisation because they have roaming user profiles on Windows that would result in C: partitions filling up. There is the old 'work offline' and the new 'auto-sync'. We want neither. Thunderbird's IMAP sync feature gives minimal improvement for a lot of pain.

References:


  • Don't 'keep messages for this account on this computer' (a 'work offline' setting)

GUI: 'Synchronisation & Storage -> Message Synchronising -> [] keep messages for this account on this computer'

Various prefs relevant to this: mail.server.default.offline_download (on by default, unless specifically turned off by the use of mail.server.serverX.offline_download)

Don't confuse this with 'auto-sync, this just allows them to be downloaded when go offline or close Thunderbird. Auto-sync bypasses this setting like one big version equivalent to this.

Controls whether or not newly created folders get flagged for downloading offline [TB 3.0.0 - 3.0.4]; additionally in TB 3.0.5+, setting to "false" prior to first run of TB 3 will prevent the IMAP folders from being set to offline download (which they would otherwise have been by default)

You need to turn this off _before_ the migration from Thunderbird 2 to 3.0.5+ else auto-sync will be enabled upon migration. In 3.0.0 - 3.0.4 auto-sync would be enabled anyway.

pref("mail.server.default.offline_download", false);


  • Don't 'Synchronize all messages locally regardless of age' (an 'auto-sync' setting)

GUI: 'Synchronisation & Storage -> Disk Space -> Synchronize all messages locally regardless of age - off'

Various prefs relevant to this: mail.server.default.autosync_offline_stores - false

mail.server.serverX.autosync_offline_stores - false

? Also there should be no mail.server.serverX.autosync_offline_stores=true ?

If the above setting is made, folder property of offline-use=on/off becomes irrelevant to auto-sync because auto-sync is disabled, and the offline-use=on/off is used for download at "Work Offline" only.

This ignores whether the folder is configured as an offline folder or not.

See http://kb.mozillazine.org/Offline_folders#AutoSync

pref("mail.server.default.autosync_offline_stores", false);


  • 'Synchronise the most recent [1] [Days]' (a 'work offline' setting)

GUI: 'Synchronisation & Storage -> Disk Space -> (*) Synchronise the most recent [1] [Days]'

pref("mail.server.default.autosync_max_age_days", 1);


  • 'Don't download messages larger than 50KB' (a 'work offline' setting)

GUI: Synchronisation & Storage -> Disk Space -> [*] Don't download messages larger than 50KB

Various prefs relevant to this:

mail.server.default.limit_offline_message_size - true (defaults to 50KB)

mail.server.serverX.limit_offline_message_size - true (defaults to 50KB)

mail.server.default.max_size - XXX

mail.server.serverX.max_size - XXX

pref("mail.server.default.limit_offline_message_size", true);


  • Disable the Migration Assistant

Prevents users being asked if they want to enable auto-sync. Available in Thunderbird 3.1 and onwards. We could lock this pref using lockpref, which is an option that should be considered, but that would prevent the option from _ever_ being used and there might be an occasional sane situation in which to use it, for example roaming users with laptops.

pref("mail.ui.show.migration.on.upgrade", false);