Difference between revisions of "Thunderbird"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
m (Disable auto update)
m (General info for version 1.5)
Line 13: Line 13:
  
  
== General info for version 1.5 ==
+
== General info for version 2.0 ==
  
This is a silent installer and uninstaller for Mozilla Thunderbird 1.5, but it should work with other versions of Thunderbird, too.
+
This is a silent installer and uninstaller for Mozilla Thunderbird 2.0.0.14, 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 1.5 installs.
+
If you have a lower version of Thunderbird installed, it will be automatically removed before Mozilla Thunderbird 2.0.0.14 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.
 
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.
Line 26: Line 26:
 
       id="thunderbird"  
 
       id="thunderbird"  
 
       name="Mozilla Thunderbird"  
 
       name="Mozilla Thunderbird"  
       revision="15041"  
+
       revision="20014"  
 
       reboot="false"  
 
       reboot="false"  
 
       priority="0">
 
       priority="0">
 
   
 
   
   <check type="uninstall" condition="exists" path="Mozilla Thunderbird (1.5)" />
+
   <check type="uninstall" condition="exists" path="Mozilla Thunderbird (2.0.0.14)" />
 
   
 
   
   <install cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 1.5.0.4.exe" -ms' />
+
   <install cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.14.exe" -ms' />
 
   
 
   
   <upgrade cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 1.5.0.4.exe" -ms' />
+
   <upgrade cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.14.exe" -ms' />
 
   
 
   
 
   <remove cmd='"%PROGRAMFILES%\Mozilla Thunderbird\uninstall\uninstall.exe" -ms' />
 
   <remove cmd='"%PROGRAMFILES%\Mozilla Thunderbird\uninstall\uninstall.exe" -ms' />
 
</package>
 
</package>
 
</source>
 
</source>
 
  
 
== Making Thunderbird a default mail and news client ==
 
== Making Thunderbird a default mail and news client ==

Revision as of 09:08, 13 June 2008

General info for version 2

"New Windows installer: Based on Nullsoft Scriptable Install System, the new Windows installer resolves many long-standing issues." http://www.mozilla.com/en-US/thunderbird/2.0.0.0/releasenotes/

Despite the change of installers, the -ms flag works instead of /s to do silent install.

For uninstall, you'll want:

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


General info for version 2.0

This is a silent installer and uninstaller for Mozilla Thunderbird 2.0.0.14, 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.14 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="20014" 
      reboot="false" 
      priority="0">
 
  <check type="uninstall" condition="exists" path="Mozilla Thunderbird (2.0.0.14)" />
 
  <install cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.14.exe" -ms' />
 
  <upgrade cmd='"%SOFTWARE%\Thunderbird\Thunderbird Setup 2.0.0.14.exe" -ms' />
 
  <remove cmd='"%PROGRAMFILES%\Mozilla Thunderbird\uninstall\uninstall.exe" -ms' />
</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


Silent installation of dictionaries (spell-checking)

Version 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>

Version 2.0 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

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

Note This won't work anymore (at least in 2.0.0.6), seems like a bug. It is already files as a bug here [1]. Keep yourself updated on the bug page.

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