====== Thunderbird 1.5.0.2 ====== // Reclaim Your Inbox // ===== Ylimääräisten tiedostojen poisto ===== Thunderbirdin asennus kopioi levylle paljon ylimääräistä rojua, jota ei paketoinnissa haluta saada pakettiin. * Kaikki //%userprofilen%// alle tulevat tiedostot ovat käyttäjäkohtaisia profiileja, joita ei haluta missään tapauksessa pakettiin. Profiilit luodaan tai päivitetään asennuksen yhteydessä jokaiselle käyttäjälle erikseen. * Thunderbirdin asennushakemistoon tulevan //uninstall//-hakemiston voi jättää pois. * //LOCALAPPDATAFOLDER// on tarpeeton. * //WINDOWSFOLDER//iin ei kopioida mitään toiminnalle tärkeätä * //HKEY_CURRENT_USER//-hiveen registryssä ei tule mitään tarpeellista. ===== Profiilien luonti ===== Profiilit luodaan samalla tavalla kuin [[paketit:firefox1502|Firefox-paketissa]], käyttäen [[ohjeet:activesetup|Active Setuppia]], mutta profiiliskripti on hieman erilainen. Profiilissa on tarpeellista määritellä mailipalvelimet ja käyttäjän nimi yms. tiedot, jotka skripti hakee LDAP-serveriltä. Jos käyttäjällä on jo profiili, sieltä otetaan tarpeellinen data talteen ja se kopioidaan uuteen //prefs.js//-tiedostoon. Lopuksi skripti vielä päivittää ''HKCU\SOFTWARE\Clients\Mail''-registryasetuksen oikeaan arvoon. Alla skripti: ' Mozilla Thunderbirdin starttiskripti ' veijo@utu.fi / 28.8.2002 ' mikko@utu.fi / 2.7.2005 Muokattu Mozilla Thunderbirdille ' vvirta@utu.fi / 8.3.2006 Päivitetty Thunderbird 1.5 varten ' vvirta@utu.fi / 10.5.2006 Muutettu Active Setupissa ajettavaksi skriptiksi Thunderbird 1.5.0.2-pakettia varten Set shell = CreateObject("WScript.Shell") Set env = shell.Environment("process") Set fs = CreateObject("Scripting.FileSystemObject") Set cmdArgs = WScript.Arguments Set AppsFolder = fs.GetFolder(env("APPDATA")) Set ProgFolder = fs.GetFolder(env("ProgramFiles")) CertName = (ProgFolder & "\mozilla.org\Thunderbird\cert8.db") Function latin2utf8(Characters) ' Converts Latin String to UTF-8 ' Input: String (Latin) ' Ouput: String (UTF-8) For counter = 1 to Len(Characters) CurrChar = Right(Left(Characters, counter), 1) c = Asc(CurrChar) If (c And 128) = 0 Then latin2utf8 = latin2utf8 & CurrChar Else latin2utf8 = latin2utf8 & Chr(192 Or (3 And Int(c / 64))) latin2utf8 = latin2utf8 & Chr(128 Or (63 And c)) End If Next End Function If Not fs.folderexists (AppsFolder & "\Thunderbird\Profiles\") Then ' Ajetaan profiilimanageri shell.Run (chr(34) & ProgFolder & "\mozilla.org\Thunderbird\thunderbird.exe" & chr(34) & " -CreateProfile " & env("USERNAME")),2,TRUE ' Haetaan asetuskansion nimi Set UserFolder = fs.GetFolder(AppsFolder & "\Thunderbird\Profiles") For Each DestFolder in UserFolder.SubFolders Set con = CreateObject("ADODB.Connection") con.Provider = "ADsDSOObject" con.open Set command = CreateObject("ADODB.Command") Set command.ActiveConnection = con ' Haetaan käyttäjän tiedot command.CommandText = ";(&(objectCategory=Person)(samaccountname=" & env("USERNAME") & "));distinguishedname;subtree" Set rs = command.Execute Set UserObject = GetObject("LDAP://" & ((rs("distinguishedname")))) ' Kopioidaan sertifikaatti käyttäjälle Set certCopy = fs.GetFile(CertName) certCopy.Copy(DestFolder & "\cert8.db") ' Rakennetaan konffitiedosto Set ConfFile = fs.CreateTextFile(Destfolder & "\prefs.js",TRUE) ConfFile.WriteLine "# Mozilla User Preferences" ConfFile.WriteLine "/* Do not edit this file." ConfFile.WriteLine "" ConfFile.WriteLine " *" ConfFile.WriteLine " * If you make changes to this file while the browser is running," ConfFile.WriteLine " * the changes will be overwritten when the browser exits." ConfFile.WriteLine " *" ConfFile.WriteLine " * To make a manual change to preferences, you can visit the URL about:config" ConfFile.WriteLine " * For more information, see http://www.mozilla.org/unix/customizing.html#prefs" ConfFile.WriteLine " */" ConfFile.WriteLine "" ConfFile.WriteLine "user_pref(" & chr(34) & "app.update.enabled" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.autoComplete.directoryServer" & chr(34) & ", " & chr(34) & "ldap_2.servers.UtuLDAP" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.autoComplete.useDirectory" & chr(34) & ", true);" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.prefs_migrated" & chr(34) & ", true);" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.servers.UtuLDAP.auth.dn" & chr(34) & ", " & chr(34) & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.servers.UtuLDAP.auth.savePassword" & chr(34) & ", true);" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.servers.UtuLDAP.description" & chr(34) & ", " & chr(34) & "Utu LDAP" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "ldap_2.servers.UtuLDAP.uri" & chr(34) & ", " & chr(34) & "ldap://ldap.utu.fi:389/dc=utu,dc=fi??sub" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.account.account1.identities" & chr(34) & ", " & chr(34) & "id1" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.account.account1.server" & chr(34) & ", " & chr(34) & "server1" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.account.account2.server" & chr(34) & ", " & chr(34) & "server2" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.accountmanager.accounts" & chr(34) & ", " & chr(34) & "account1,account2" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.accountmanager.defaultaccount" & chr(34) & ", " & chr(34) & "account1" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.accountmanager.localfoldersserver" & chr(34) & ", " & chr(34) & "server2" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.checkDefaultMail" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.checkDefaultNews" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.checkDefaultFeed" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.collect_email_address_outgoing" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.default_html_action" & chr(34) & ", 1);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.display_glyph" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.enable_autocomplete" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.forward_message_mode" & chr(34) & ", 2);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.bcc_other_list" & chr(34) & ", " & chr(34) & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.compose_html" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.draft_folder" & chr(34) & ", " & chr(34) & "imap://" & UserObject.sAMAccountName & "@imap.utu.fi/Drafts" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.drafts_folder_picker_mode" & chr(34) & ", 0);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.fcc_folder" & chr(34) & ", " & chr(34) & "imap://" & UserObject.sAMAccountName & "@imap.utu.fi/Sent" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.fcc_folder_picker_mode" & chr(34) & ", 0);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.stationery_folder" & chr(34) & ", " & chr(34) & "imap://" & UserObject.sAMAccountName & "@imap.utu.fi/Templates" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.tmpl_folder_picker_mode" & chr(34) & ", 0);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.fullName" & chr(34) & ", " & chr(34) & latin2utf8(UserObject.fullName) & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.organization" & chr(34) & ", " & chr(34) & "University of Turku" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.smtpServer" & chr(34) & ", " & chr(34) & "smtp1" & chr(34) & ");" If UserObject.mail = "" Then ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.useremail" & chr(34) & ", " & chr(34) & UserObject.sAMAccountname & "@utu.fi" & chr(34) & ");" Else ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.useremail" & chr(34) & ", " & chr(34) & UserObject.mail & chr(34) & ");" End If ConfFile.WriteLine "user_pref(" & chr(34) & "mail.identity.id1.valid" & chr(34) & ", " & chr(34) & "true" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.hostname" & chr(34) & ", " & chr(34) & "imap.utu.fi" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.isSecure" & chr(34) & ", true);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.login_at_startup" & chr(34) & ", true);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.name" & chr(34) & ", " & chr(34) & "imap.utu.fi" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.port" & chr(34) & ", " & chr(34) & "993" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.type" & chr(34) & ", " & chr(34) & "imap" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.userName" & chr(34) & ", " & chr(34) & UserObject.sAMAccountName & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server1.check_time" & chr(34) & ", 30);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server2.hostname" & chr(34) & ", " & chr(34) & "Local Folders" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server2.name" & chr(34) & ", " & chr(34) & "Local Folders" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server2.type" & chr(34) & ", " & chr(34) & "none" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.server.server2.userName" & chr(34) & ", " & chr(34) & "nobody" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.smtp.defaultserver" & chr(34) & ", " & chr(34) & "smtp1" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.smtpserver.smtp1.auth_method" & chr(34) & ", 0);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.smtpserver.smtp1.hostname" & chr(34) & ", " & chr(34) & "smtp.utu.fi" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.smtpserver.smtp1.try_ssl" & chr(34) & ", 1);" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.smtpserver.smtp1.username" & chr(34) & ", " & chr(34) & "" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.smtpservers" & chr(34) & ", " & chr(34) & "smtp1" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mail.startup.enabledMailCheckOnce" & chr(34) & ", true);" ConfFile.WriteLine "user_pref(" & chr(34) & "mailnews.start_page.enabled" & chr(34) & ", false);" ConfFile.WriteLine "user_pref(" & chr(34) & "mailnews.send_default_charset" & chr(34) & ", " & chr(34) & "ISO-8859-15" & chr(34) & ");" ConfFile.WriteLine "user_pref(" & chr(34) & "mailnews.view_default_charset" & chr(34) & ", " & chr(34) & "ISO-8859-15" & chr(34) & ");" ConfFile.Close Next Else ' Korjataan prefs.js:ää Set UserFolder = fs.GetFolder(AppsFolder & "\Thunderbird\Profiles") For Each DestFolder in UserFolder.SubFolders prefFile = DestFolder & "\prefs.js" Set inStream = fs.OpenTextFile(prefFile) FileContents = inStream.ReadAll ' Kerätään tarvittavat tiedot Set objRegEx = New RegExp objRegEx.Global = True ObjRegEx.IgnoreCase = True objRegEx.Pattern = "user_pref\(" & chr(34) & "((ldap_2)|(mail)|(mailnews))\..+" & chr(34) & "\)\;" Set matches = objRegEx.Execute(FileContents) ' Kirjoitetaan prefs.js Set outStream = fs.OpenTextFile(prefFile, 2, True) outStream.WriteLine "# Mozilla User Preferences" outStream.WriteLine "/* Do not edit this file." outStream.WriteLine "" outStream.WriteLine " *" outStream.WriteLine " * If you make changes to this file while the browser is running," outStream.WriteLine " * the changes will be overwritten when the browser exits." outStream.WriteLine " *" outStream.WriteLine " * To make a manual change to preferences, you can visit the URL about:config" outStream.WriteLine " * For more information, see http://www.mozilla.org/unix/customizing.html#prefs" outStream.WriteLine " */" outStream.WriteLine "" For Each match in matches 'If Not InStr(1, match, "mail.checkDefault", 1) Then outStream.WriteLine match 'End If Next outStream.WriteLine "user_pref(" & chr(34) & "app.update.enabled" & chr(34) & ", false);" outStream.WriteLine "user_pref(" & chr(34) & "mail.checkDefaultMail" & chr(34) & ", false);" outStream.WriteLine "user_pref(" & chr(34) & "mail.checkDefaultNews" & chr(34) & ", false);" outStream.WriteLine "user_pref(" & chr(34) & "mail.checkDefaultFeed" & chr(34) & ", false);" Next End If ' Kirjoitetaan XP:n oletusmailiclientin arvo HKCU-hiveen shell.RegWrite "HKCU\SOFTWARE\Clients\Mail\", "Mozilla Thunderbird", "REG_SZ" ===== Oletusmailiohjelma ===== Kun Thunderbird asennetaan, halutaan se myös pistää oletusmailiohjelmaksi kaikille käyttäjille. Oletusmailiselain määritellään kahdesta asiasta. === Mitä Thunderbird itse asettaa === Jos Thunderbirdin antaa itse asettaa itsensä oletusmailiohjelmaksi, se kirjoittaa seuraavat registryarvot ((olettaen että asennuspolku on %ProgramFiles%\mozilla.org\Thunderbird\)): ^ Avain ^ Arvo ^ | HKCR\mailto\shell\open\command | C:\PROGRA~1\MOZILLA.ORG\THUNDE~1\THUNDE~1.EXE -compose %1 | | HKLM\SOFTWARE\Clients\Mail | Mozilla Thunderbird | | HKCU\SOFTWARE\Clients\Mail | Mozilla Thunderbird | === mailto-asetus === ''HKLM\SOFTWARE\Classes\mailto\shell\open\command''-asetuksessa määritellään millä ohjelmalla avataan mailto-linkki. Tätä arvoa Thunderbird katsoo, kun se haluaa tietää onko se oletusmailiohjelma. Jos Thunderbirdin antaa itse kirjoittaa tämän arvon, se kirjoittaa siihen polun käyttäen lyhyita 8.3 tiedostonimiä. Koska tätä on vaikea tehdä asennuksessa oikein, on helpompaa disabloida Thunderbirdin tarkistus. Tämä käy suhteellisen monimutkaisesti. * prefs.js:ssä tulee olla asetus ''user_pref("mail.checkDefaultMail, false");'' * ''HKLM\SOFTWARE\Mozilla Thunderbird\Desktop\defaultMailHasBeenSet'' tulee asettaa arvoon "0" (REG_SZ) * ''HKLM\SOFTWARE\Mozilla Thunderbird\Desktop\showMapiDialog'' tulee asettaa arvoon "0" (REG_SZ) Tämän jälkeen mailto-arvoon voi kirjoittaa asennuksen yhteydessä polun rauhassa miettimättä onko se täsmälleen Thunderbirdin tarkistuksen mukainen. === Windows XP:n "E-Mail" === Windows XP:ssä Start-valikossa näkyy valinta "E-Mail". Tätä arvoa kontrolloidaan arvolla ''HKCU\SOFTWARE\Clients\Mail''. Jos arvoa ei ole asetettu, oletusarvo haetaan polusta ''HKLM\SOFTWARE\Clients\Mail''. Arvona on ''HKLM\SOFTWARE\Clients\Mail'' polusta löytyvä avain, jonka alla luetellaan sen mailiohjelman ominaisuudet. Thunderbirdille riittää, että asetetaan jokaiselle käyttäjälle ''HKCU\SOFTWARE\Clients\Mail'' arvoon ''Mozilla Thunderbird'' ja lisäksi seuraavat arvot laitetaan registryyn: ===== Laajennukset ===== Thunderbirdiin saa laajennuksia (eng. extensions), joita mahdollisesti halutaan asentaa ohjelman käyttöä varten. Turun Yliopistolla laajennuksista "redirect"-toiminnon lisäävä laajennus halutaan käyttöön oletuksena kaikissa asennuksissa. Tämä tehdään siten, että testikoneelle asennetaan kyseinen laajennus, tämän jälkeen etsitään se käyttäjän Thunderbird-profiilin((%userprofile%\Application Data\Thunderbird\Profiles)) alta ja sieltä extensions-hakemistosta katsotaan oikea hakemisto. Tämän jälkeen koko hakemisto kopioidaan asennuspakettiin Thunderbirdin asennushakemiston alla olevaan extensions-hakemistoon. Näin laajennus tulee kaikille käyttöön.