Skip to main content

The included script to install Mozilla Thunderbird was tweaked to allow it to autoconfigure an email account when the user launches the program.

Some autoconfig resources used were:
http://www.int-evry.fr/s2ia/user/procacci/netscape/en/mozilla-autoconfig-en.html#htoc12
http://developer.mozilla.org/en/docs/MCD%2C_Mission_Control_Desktop_AKA_AutoConfig#Central_Configuration_File
http://kb.mozillazine.org/Configuration_utilities_for_administrators
http://mit.edu/~thunderbird/www/maintainers/autoconfig.html
http://mit.edu/~thunderbird/www/maintainers/config.html
http://wpkg.org/Thunderbird

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

A sample thunderbird.cfg (requires modification for your site!):

//put everything in a try/catch

try {

// 1) env variables - comment/uncomment for your OS
// *NIX settings
//   var env_user    = getenv("USER");
//   var env_home    = getenv("HOME");

// Windows settings
var env_user    = getenv("USERNAME");
var env_home    = getenv("HOMEPATH");

//var env_mozdebug= getenv("MOZILLA_DEBUG");

// 2) lock general preferences
//LDAP address book
defaultPref("ldap_2.prefs_migrated", true);
defaultPref("ldap_2.servers.<Abook Name>.auth.savePassword", true);
defaultPref("ldap_2.servers.<Abook Name>.description", "<Description>");
defaultPref("ldap_2.servers.<Abook Name>.filename", "abook-1.mab");
defaultPref("ldap_2.servers.<Abook Name>.uri", "ldap://ldapserver.domain.com:389/ou=<ou>,dc=<dc>,dc=<dc>??sub");
defaultPref("ldap_2.servers.history.filename", "history.mab");
defaultPref("ldap_2.servers.history.replication.lastChangeNumber", 0);
defaultPref("ldap_2.servers.pab.filename", "abook.mab");
defaultPref("ldap_2.servers.pab.replication.lastChangeNumber", 0);

//Account
defaultPref("mail.account.account1.server", "server1");
defaultPref("mail.account.account2.identities", "id1");
defaultPref("mail.account.account2.server", "server2");
defaultPref("mail.accountmanager.accounts", "account1,account2");
defaultPref("mail.accountmanager.defaultaccount", "account2");
defaultPref("mail.accountmanager.localfoldersserver", "server1");
defaultPref("mail.identity.id1.useremail", env_user + "@domain.com");
defaultPref("mail.identity.id1.fullName", env_user);
defaultPref("mail.identity.id1.directoryServer", "ldap_2.servers.<Abook Name>");
defaultPref("mail.identity.id1.draft_folder", "imap://" + env_user + "@imap.domain.com/Drafts");
defaultPref("mail.identity.id1.drafts_folder_picker_mode", "0");
defaultPref("mail.identity.id1.fcc_folder", "imap://" + env_user + "@imap.domain.com/Sent");
defaultPref("mail.identity.id1.fcc_folder_picker_mode", "0");
defaultPref("mail.identity.id1.organization", "My Organization");
defaultPref("mail.identity.id1.overrideGlobal_Pref", true);
defaultPref("mail.identity.id1.reply_to", "");

//IMAP
defaultPref("mail.server.server2.hostname", "imap.domain.com");
defaultPref("mail.server.server2.isSecure", true);
defaultPref("mail.server.server2.login_at_startup", true);
defaultPref("mail.server.server2.max_cached_connections", 5);
defaultPref("mail.server.server2.name", env_user);
defaultPref("mail.server.server2.type", "imap");
defaultPref("mail.server.server2.port", 993);
defaultPref("mail.server.server2.socketType", 3);
defaultPref("mail.server.server2.userName", env_user + "@domain.com");

//SMTP
defaultPref("mail.identity.id1.smtpServer", "smtp1");
defaultPref("mail.identity.id1.stationery_folder", "imap://" + env_user + "@imap.domain.com/Templates");
defaultPref("mail.identity.id1.tmpl_folder_picker_mode", "0");
defaultPref("mail.identity.id1.valid", true);

//SMTP general
defaultPref("mail.smtp.defaultserver", "smtp1");
defaultPref("mail.smtpserver.smtp1.auth_method", 1);
defaultPref("mail.smtpserver.smtp1.description", "SMTP");
defaultPref("mail.smtpserver.smtp1.hostname", "smtp.domain.com");
defaultPref("mail.smtpserver.smtp1.port", 465);
defaultPref("mail.smtpserver.smtp1.try_ssl", 3);
defaultPref("mail.smtpserver.smtp1.username", env_user + "@domain.com");
defaultPref("mail.smtpservers", "smtp1");


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

Deploying the configuration through unattended