Difference between revisions of "Thunderbird"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
(General info for version 3.1)
m (prevent display of migration assistant)
Line 489: Line 489:
 
}
 
}
 
</source>
 
</source>
 +
=== Disable Migration Assistant and Welcome page ===
 +
To prevent the Migration Assistant and the welcome page from showing after upgrades add the following lines to your thunderbird.cfg.
 +
<source lang=javascript>
  
 +
lockPref("mail.ui.show.migration.on.upgrade", false);
 +
lockPref("app.update.showInstalledUI", false);
 +
lockPref("browser.startup.homepage_override.mstone", "ignore");
 +
</source>
  
 
[[category:Silent Installers]]
 
[[category:Silent Installers]]

Revision as of 01:56, 28 June 2010

General info for version 3.1

Version 3.1 is out [1]. It install itself the same way version 2.0 so see below.

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

General info for version 2.0

This is a silent installer and uninstaller for Mozilla Thunderbird 2.0.0.23, but it should work with other versions of Thunderbird, too.

If you have a lower version of Thunderbird installed, it will be automatically removed before Mozilla Thunderbird 2.0.0.23 installs.

As the Thunderbird install now nicely upgrades and doesn't leave the old one in the registry, there is no need to differentiate versions in package id. When a new version comes out, just replace the installer in "upgrade cmd" with a new one, and then increment the package revision number - this puts the upgrade command to work.

<package 
      id="thunderbird" 
      name="Mozilla Thunderbird" 
      revision="20023" 
      reboot="false" 
      priority="0">
 
  <check type="uninstall" condition="exists" path="Mozilla Thunderbird (2.0.0.23)" />
 
  <install cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.23.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.23.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>

Making Thunderbird a 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 XML:

  <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");


And then add this to your XML package definition:

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


Silent installation of Thunderbird extensions

To silently install Mozilla Thunderbird extensions, do the following:

  • download the extension
  • go to "%PROGRAMFILES%\Mozilla Thunderbird\extensions\" and see what folders you have there
  • install the extension into Thunderbird manually
    • It is best to do this using Tools -> Extensions -> Install from within Thunderbird. Then you can find the additional folder containing your extension in "%PROGRAMFILES%\Mozilla Thunderbird\extensions\".
    • Alternatively, you can use any unzip program to look inside the XPI file (which is just a zip file with the extension changed to XPI). However, you will not know which folder the XPI will extract to unless you look inside the install.rdf and look for id.
  • copy the new folder to the server
  • the silent 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>
  • Basically, it means you have to copy the folder named similar to {8845E3B3-E8FB-40E2-95E9-EC40294818C4} to your "%PROGRAMFILES%\Mozilla Thunderbird\extensions" folder
  • when Mozilla Thunderbird is next started, a new extension is detected automatically - you can verify this in Thunderbird using Tools -> Extensions


or you can use this script

<package id="thunderbird-ext-p7m"
    name="Thunderbird Extension for p7m files"
    revision="1"
    reboot="false"
    priority="0">

    <depends package-id="thunderbird" />

    <variable name='thext' value='SmartP7mSupport-0.4.1.xpi' />
    <variable name='thdir' value='{1199032f-b0f2-4552-a7c0-21f6a60df93a}' />

    <check type="file" condition="exists" path="%PROGRAMFILES%\Mozilla Thunderbird\extensions\%THDIR%\chrome.manifest" />

    <install cmd='taskkill /F /IM thunderbid.exe'>
        <exit code="0" />
        <exit code="128" />
    </install>
    <install cmd='cmd /C copy /Y "%SOFTWARE%\packages\%THEXT%" "%PROGRAMFILES%\Mozilla Thunderbird"' />
    <install cmd='"%PROGRAMFILES%\Mozilla Thunderbird\thunderbird.exe" -install-global-extension "%PROGRAMFILES%\Mozilla Thunderbird\%THEXT%"' />
    <install cmd='cmd /C del /q "%PROGRAMFILES%\Mozilla Thunderbird\%THEXT%"' />
    <install cmd='taskkill /F /IM thunderbird.exe'>
        <exit code="0" />
        <exit code="128" />
    </install>

    <upgrade cmd='taskkill /F /IM thunderbird.exe'>
       <exit code="0" />
       <exit code="128" />
    </upgrade>
    <upgrade cmd='cmd /c rmdir /q /s "%PROGRAMFILES%\Mozilla Thunderbird\extensions\%THDIR%"' />
    <upgrade cmd='cmd /C copy /Y "%SOFTWARE%\packages\%THEXT%" "%PROGRAMFILES%\Mozilla Thunderbird"' />
    <upgrade cmd='"%PROGRAMFILES%\Mozilla Thunderbird\thunderbird.exe" -install-global-extension  "%PROGRAMFILES%\Mozilla Thunderbird\%THEXT%"' />
    <upgrade cmd='cmd /C del /q "%PROGRAMFILES%\Mozilla Thunderbird\%THEXT%"' />
    <upgrade cmd='taskkill /F /IM thunderbird.exe'>
        <exit code="0" />
        <exit code="128" />
    </upgrade>

    <remove cmd='cmd /c rmdir /q /s "%PROGRAMFILES%\Mozilla Thunderbird\extensions\%THDIR%"' />
</package>

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.

Installation instructions for 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 XML which installs the German dictionary for 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"

Disable auto update

Thunderbird processes the config files in reverse alphabetical order. Create a file called, for example, all-thunderbird-custom-disable-updates.js, saved in %PROGRAMFILES%\Mozilla thunderbird\defaults\pref\, containing the following:

// ***********************************************************************

// *                                                                     *

// * all-thunderbird-custom-disable-updates.js -                                 *

// * Thunderbird custom global configuration to disable updates              *

// *                                                                     *

// ***********************************************************************


// 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 [2].

Removing access to Outlook Express

If you want to remove access to OE, see Outlook Express.


Using thunderbird 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");

Note: Byteshifting does not seem to be required with versions 1.5.* or 2.0.*

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

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);
}

Disable Migration Assistant and Welcome page

To prevent the Migration Assistant and the welcome page from showing after upgrades add the following lines to your thunderbird.cfg.

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