user_pref("app.update.auto", false);
pref("general.config.obscure_value", 0);
pref("general.config.filename", "thunderbird.cfg");
which thunderbird
function pref(prefName, value)
function defaultPref(prefName, value)
function lockPref(prefName, value)
function unlockPref(prefName)
function getPref(prefName)
function clearPref(prefName)
function getenv(envName)
// Thunderbird Mozilla AutoConfig
try {
// , Thunderbird ( , )
if(getenv("USER") != "") {
// *NIX
var env_user = getenv("USER");
var env_home = getenv("HOME");
} else {
// Windows
var env_user = getenv("USERNAME");
var env_home = getenv("HOMEPATH");
}
// account1
defaultPref("mail.accountmanager.defaultaccount", "account1");
// account1
defaultPref("mail.accountmanager.accounts", "account1");
// account1 server1 (IMAP)
lockPref("mail.account.account1.server", "server1");
// IMAP ,
//
lockPref("mail.accountmanager.localfoldersserver", "server1");
// " "
lockPref("mail.rights.version", 1);
// . ,
// all.js Mozilla AutoConfig .
lockPref("app.update.enabled", false);
lockPref("extensions.update.enabled", false);
// IMAP
lockPref("mail.server.server1.type", "imap");
lockPref("mail.server.server1.hostname", "mail.domain.com"); // , , ,
lockPref("mail.server.server1.realhostname", "mail.domain.com"); //
lockPref("mail.server.server1.port", 143); //
lockPref("mail.server.server1.socketType", 2); // STARTLS
lockPref("mail.server.server1.name", env_user);
lockPref("mail.server.server1.userName", env_user); // ,
lockPref("mail.server.server1.realuserName", env_user); // hostname
lockPref("mail.server.server1.login_at_startup", true); // ! ;)
lockPref("mail.server.server1.isSecure", true); //
// SMTP
lockPref("mail.smtpserver.smtp1.hostname", "mail.domain.com");
lockPref("mail.smtpserver.smtp1.port", 25);
lockPref("mail.smtpserver.smtp1.description", "SMTP « »");
lockPref("mail.smtpserver.smtp1.try_ssl", 2);
lockPref("mail.smtpserver.smtp1.auth_method", 1);
lockPref("mail.smtpserver.smtp1.username", env_user);
// - ..
defaultPref("mail.identity.id1.fullName", env_user); // ,
lockPref("mail.identity.id1.useremail", env_user + "@domain.com");
lockPref("mail.identity.id1.reply_to", env_user + "@domain.com");
lockPref("mail.identity.id1.valid", true);
lockPref("mail.identity.id1.smtpServer", "smtp1");
lockPref("mail.identity.id1.organization", " « »");
// ID
lockPref("mail.account.account1.identities", "id1");
// LDAP
lockPref("ldap_2.servers.domain.uri", "ldap://dc.domain.com/OU=,OU=domain,DC=DOMAIN,DC=COM??sub?(mail=*)");
lockPref("ldap_2.servers.domain.auth.dn", "DOMAIN\\" + env_user);
lockPref("ldap_2.servers.domain.auth.saslmech", "");
lockPref("ldap_2.servers.domain.description", " ' '");
lockPref("ldap_2.servers.domain.filename", "empl.mab");
lockPref("ldap_2.servers.domain.maxHits", 300);
//
lockPref("ldap_2.autoComplete.directoryServer", "ldap_2.servers.domain");
lockPref("ldap_2.autoComplete.useDirectory", true);
} catch(e) {
displayError("lockedPref", e);
}
lockPref("autoadmin.global_config_url", "http://mail.domain.com/thunderbird.cfg");
lockPref("autoadmin.append_emailaddr", false);
// Thunderbird
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");
}
lockPref("autoadmin.global_config_url", "http://mail.domain.com/tb/user/"+env_user);
lockPref("autoadmin.append_emailaddr", false);
http://mail.domain.com/tb/user/malamut
Options -Indexes +ExecCGI
AddHandler cgi-script .pl
RewriteEngine on
RewriteBase /tb
RewriteRule ^user/(.*) conf.pl?user=$1 [L]
http://mail.domain.com/tb/user/malamut
http://mail.domain.com/tb/conf.pl?user=malamut
#!/usr/bin/perl
use 5.010;
use CGI qw/:standard/;
#
$smtp_server = "mail.domain.com";
$imap_server = "mail.domain.com";
$organization = " « »";
#
print header(
-type=>'application/javascript'
);
# Username - GET
$user = param('user');
unless ($user) { die "We need a user, please!\n" }
# user lovercase, IMAP . username
# , .
$user = lc $user;
#########################################################################
#
# .
# FIXME:
@mails = getEmails($user);
#
# FIXME:
$name = getName($user);
#########################################################################
#
print <<HEAD;
// Thunderbird $user ($name)
try {
HEAD
#
# SMTP SMTP
# JavaScript.
# , .
# mail.accountmanager.accounts mail.smtpservers, .
print <<SERVERS;
//
// ,
var accounts = getPref("mail.accountmanager.accounts");
var accounts_s = accounts + ",";
if (! (accounts_s.indexOf("account1,")+1) ) {
accounts = accounts + ",account1";
}
pref("mail.accountmanager.accounts",accounts);
// IMAP
lockPref("mail.server.server1.type", "imap");
lockPref("mail.server.server1.hostname", "$imap_server"); // , , ,
lockPref("mail.server.server1.realhostname", "$imap_server"); //
lockPref("mail.server.server1.port", 143); //
lockPref("mail.server.server1.socketType", 2); // STARTLS
lockPref("mail.server.server1.name", "$name");
lockPref("mail.server.server1.userName", "$user"); // ,
lockPref("mail.server.server1.realuserName", "$user"); // hostname
lockPref("mail.server.server1.login_at_startup", true); // ! ;)
lockPref("mail.server.server1.isSecure", true); //
// IMAP
lockPref("mail.account.account1.server", "server1");
// SMTP
lockPref("mail.smtpserver.smtp1.hostname", "$smtp_server");
lockPref("mail.smtpserver.smtp1.port", 25);
lockPref("mail.smtpserver.smtp1.description", "SMTP $organization");
lockPref("mail.smtpserver.smtp1.try_ssl", 2);
lockPref("mail.smtpserver.smtp1.auth_method", 1);
lockPref("mail.smtpserver.smtp1.username", "$user");
// SMTP
var smtp = getPref("mail.smtpservers");
var smtp_s = smtp + ",";
if (! (smtp_s.indexOf("smtp1,")+1) ) {
smtp = smtp + ",smtp1";
}
pref("mail.smtpservers", smtp);
SERVERS
#
print <<MISC;
// " "
lockPref("mail.rights.version", 1);
//
lockPref("app.update.enabled", false);
lockPref("extensions.update.enabled", false);
// IMAP ,
//
lockPref("mail.accountmanager.localfoldersserver", "server1");
// TB
lockPref("mail.accountmanager.defaultaccount", "account1");
// IMAP ,
//
lockPref("mail.accountmanager.localfoldersserver", "server1");
MISC
#
# , .
$i=0;
@ids = ();
foreach $mail (@mails) {
$i++;
$id = <<ID;
// $mail $user ($name)
defaultPref("mail.identity.id$i.fullName", "$name");
lockPref("mail.identity.id$i.useremail", "$mail");
lockPref("mail.identity.id$i.reply_to", "$mail");
lockPref("mail.identity.id$i.valid", true);
lockPref("mail.identity.id$i.smtpServer", "smtp1");
lockPref("mail.identity.id$i.organization", "$organization");
lockPref("mail.identity.id$i.archive_folder", "imap://$user\@$imap_server/Archives");
lockPref("mail.identity.id$i.draft_folder", "imap://$user\@$imap_server/Drafts");
lockPref("mail.identity.id$i.drafts_folder_picker_mode", 0);
lockPref("mail.identity.id$i.fcc_folder", "imap://$user\@$imap_server/Sent");
lockPref("mail.identity.id$i.fcc_folder_picker_mode", 0);
lockPref("mail.identity.id$i.stationery_folder", "imap://$user\@$imap_server/Templates");
ID
print $id;
push @ids, "id$i";
}
# TB,
$ids = join ',', @ids;
print <<IDS;
//
lockPref("mail.account.account1.identities", "$ids");
IDS
# LDAP
print <<BOOKS;
//
lockPref("ldap_2.servers.domain.uri", "ldap://dc.domain.com/OU=,OU=domain,DC=DOMAIN,DC=COM??sub?(mail=*)");
lockPref("ldap_2.servers.domain.auth.dn", "DOMAIN\\\\$user");
lockPref("ldap_2.servers.domain.auth.saslmech", "");
lockPref("ldap_2.servers.domain.description", " ' '");
lockPref("ldap_2.servers.domain.filename", "empl.mab");
lockPref("ldap_2.servers.domain.maxHits", 300);
//
lockPref("ldap_2.autoComplete.directoryServer", "ldap_2.servers.domain");
lockPref("ldap_2.autoComplete.useDirectory", true);
BOOKS
#################################################
# #
if ($user eq 'malamut') {
yandex('yandex',50);
}
#################################################
print <<TAIL;
} catch(e) {
displayError("lockedPref", e);
}
TAIL
# . id , ya_name -
sub yandex {
my ($ya_name, $id) = @_;
print <<YANDEX;
// SMTP $ya_name\@yandex.ru
lockPref("mail.smtpserver.smtp$id.hostname", "smtp.yandex.ru");
lockPref("mail.smtpserver.smtp$id.port", 465);
lockPref("mail.smtpserver.smtp$id.description", "SMTP $ya_name\@yandex.ru");
lockPref("mail.smtpserver.smtp$id.try_ssl", 3);
lockPref("mail.smtpserver.smtp$id.auth_method", 1);
lockPref("mail.smtpserver.smtp$id.username", "$ya_name\@yandex.ru");
// SMTP
var smtp = getPref("mail.smtpservers");
var smtp_s = smtp + ",";
if (! (smtp_s.indexOf("smtp$id,")+1) ) {
smtp = smtp + ",smtp$id";
}
pref("mail.smtpservers", smtp);
// IMAP $ya_name\@yandex.ru
lockPref("mail.server.server$id.type", "imap");
lockPref("mail.server.server$id.hostname", "imap.yandex.ru");
lockPref("mail.server.server$id.realhostname", "imap.yandex.ru");
lockPref("mail.server.server$id.port", 993);
lockPref("mail.server.server$id.socketType", 3);
lockPref("mail.server.server$id.name", "$ya_name\@yandex.ru");
lockPref("mail.server.server$id.userName", "$ya_name\@yandex.ru");
lockPref("mail.server.server$id.realuserName", "$ya_name\@yandex.ru");
lockPref("mail.server.server$id.check_new_mail", true);
lockPref("mail.server.server$id.login_at_startup", true);
lockPref("mail.server.server$id.isSecure", true);
lockPref("mail.server.server$id.max_cached_connections", 5);
// $ya_name\@yandex.ru
defaultPref("mail.identity.id$id.fullName", "$ya_name");
lockPref("mail.identity.id$id.useremail", "$ya_name\@yandex.ru");
lockPref("mail.identity.id$id.reply_to", "$ya_name\@yandex.ru");
lockPref("mail.identity.id$id.valid", true);
lockPref("mail.identity.id$id.smtpServer", "smtp$id");
defaultPref("mail.identity.id$id.organization", "");
lockPref("mail.account.account$id.identities", "id$id");
lockPref("mail.account.account$id.server", "server$id");
// $ya_name\@yandex.ru
accounts = getPref("mail.accountmanager.accounts");
accounts_s = accounts + ",";
if (! (accounts_s.indexOf("account$id,")+1) ) {
accounts = accounts + ",account$id";
}
pref("mail.accountmanager.accounts",accounts);
YANDEX
}
http://mail.domain.com/tb/user/malamut
// Thunderbird malamut (Malamut)
try {
//
// ,
var accounts = getPref("mail.accountmanager.accounts");
var accounts_s = accounts + ",";
if (! (accounts_s.indexOf("account1,")+1) ) {
accounts = accounts + ",account1";
}
pref("mail.accountmanager.accounts",accounts);
// IMAP
lockPref("mail.server.server1.type", "imap");
lockPref("mail.server.server1.hostname", "mail.domain.com"); // , , ,
lockPref("mail.server.server1.realhostname", "mail.domain.com"); //
lockPref("mail.server.server1.port", 143); //
lockPref("mail.server.server1.socketType", 2); // STARTLS
lockPref("mail.server.server1.name", "Malamut");
lockPref("mail.server.server1.userName", "malamut"); // ,
lockPref("mail.server.server1.realuserName", "malamut"); // hostname
lockPref("mail.server.server1.login_at_startup", true); // ! ;)
lockPref("mail.server.server1.isSecure", true); //
// IMAP
lockPref("mail.account.account1.server", "server1");
// SMTP
lockPref("mail.smtpserver.smtp1.hostname", "mail.domain.com");
lockPref("mail.smtpserver.smtp1.port", 25);
lockPref("mail.smtpserver.smtp1.description", "SMTP « »");
lockPref("mail.smtpserver.smtp1.try_ssl", 2);
lockPref("mail.smtpserver.smtp1.auth_method", 1);
lockPref("mail.smtpserver.smtp1.username", "malamut");
// SMTP
var smtp = getPref("mail.smtpservers");
var smtp_s = smtp + ",";
if (! (smtp_s.indexOf("smtp1,")+1) ) {
smtp = smtp + ",smtp1";
}
pref("mail.smtpservers", smtp);
// " "
lockPref("mail.rights.version", 1);
//
lockPref("app.update.enabled", false);
lockPref("extensions.update.enabled", false);
// IMAP ,
//
lockPref("mail.accountmanager.localfoldersserver", "server1");
// TB
lockPref("mail.accountmanager.defaultaccount", "account1");
// IMAP ,
//
lockPref("mail.accountmanager.localfoldersserver", "server1");
// malamut@domain.com malamut (Malamut)
defaultPref("mail.identity.id1.fullName", "Malamut");
lockPref("mail.identity.id1.useremail", "malamut@domain.com");
lockPref("mail.identity.id1.reply_to", "malamut@domain.com");
lockPref("mail.identity.id1.valid", true);
lockPref("mail.identity.id1.smtpServer", "smtp1");
lockPref("mail.identity.id1.organization", " « »");
lockPref("mail.identity.id1.archive_folder", "imap://malamut@mail.domain.com/Archives");
lockPref("mail.identity.id1.draft_folder", "imap://malamut@mail.domain.com/Drafts");
lockPref("mail.identity.id1.drafts_folder_picker_mode", 0);
lockPref("mail.identity.id1.fcc_folder", "imap://malamut@mail.domain.com/Sent");
lockPref("mail.identity.id1.fcc_folder_picker_mode", 0);
lockPref("mail.identity.id1.stationery_folder", "imap://malamut@mail.domain.com/Templates");
// admin@domain.com malamut (Malamut)
defaultPref("mail.identity.id2.fullName", "Malamut");
lockPref("mail.identity.id2.useremail", "admin@domain.com");
lockPref("mail.identity.id2.reply_to", "admin@domain.com");
lockPref("mail.identity.id2.valid", true);
lockPref("mail.identity.id2.smtpServer", "smtp1");
lockPref("mail.identity.id2.organization", " « »");
lockPref("mail.identity.id2.archive_folder", "imap://malamut@mail.domain.com/Archives");
lockPref("mail.identity.id2.draft_folder", "imap://malamut@mail.domain.com/Drafts");
lockPref("mail.identity.id2.drafts_folder_picker_mode", 0);
lockPref("mail.identity.id2.fcc_folder", "imap://malamut@mail.domain.com/Sent");
lockPref("mail.identity.id2.fcc_folder_picker_mode", 0);
lockPref("mail.identity.id2.stationery_folder", "imap://malamut@mail.domain.com/Templates");
//
lockPref("mail.account.account1.identities", "id1,id2");
//
lockPref("ldap_2.servers.domain.uri", "ldap://dc.domain.com/OU=,OU=domain,DC=DOMAIN,DC=COM??sub?(mail=*)");
lockPref("ldap_2.servers.domain.auth.dn", "DOMAIN\\malamut");
lockPref("ldap_2.servers.domain.auth.saslmech", "");
lockPref("ldap_2.servers.domain.description", " ' '");
lockPref("ldap_2.servers.domain.filename", "empl.mab");
lockPref("ldap_2.servers.domain.maxHits", 300);
//
lockPref("ldap_2.autoComplete.directoryServer", "ldap_2.servers.domain");
lockPref("ldap_2.autoComplete.useDirectory", true);
// SMTP yandex@yandex.ru
lockPref("mail.smtpserver.smtp50.hostname", "smtp.yandex.ru");
lockPref("mail.smtpserver.smtp50.port", 465);
lockPref("mail.smtpserver.smtp50.description", "SMTP yandex@yandex.ru");
lockPref("mail.smtpserver.smtp50.try_ssl", 3);
lockPref("mail.smtpserver.smtp50.auth_method", 1);
lockPref("mail.smtpserver.smtp50.username", "yandex@yandex.ru");
// SMTP
var smtp = getPref("mail.smtpservers");
var smtp_s = smtp + ",";
if (! (smtp_s.indexOf("smtp50,")+1) ) {
smtp = smtp + ",smtp50";
}
pref("mail.smtpservers", smtp);
// IMAP yandex@yandex.ru
lockPref("mail.server.server50.type", "imap");
lockPref("mail.server.server50.hostname", "imap.yandex.ru");
lockPref("mail.server.server50.realhostname", "imap.yandex.ru");
lockPref("mail.server.server50.port", 993);
lockPref("mail.server.server50.socketType", 3);
lockPref("mail.server.server50.name", "yandex@yandex.ru");
lockPref("mail.server.server50.userName", "yandex@yandex.ru");
lockPref("mail.server.server50.realuserName", "yandex@yandex.ru");
lockPref("mail.server.server50.check_new_mail", true);
lockPref("mail.server.server50.login_at_startup", true);
lockPref("mail.server.server50.isSecure", true);
lockPref("mail.server.server50.max_cached_connections", 5);
// yandex@yandex.ru
defaultPref("mail.identity.id50.fullName", "yandex");
lockPref("mail.identity.id50.useremail", "yandex@yandex.ru");
lockPref("mail.identity.id50.reply_to", "yandex@yandex.ru");
lockPref("mail.identity.id50.valid", true);
lockPref("mail.identity.id50.smtpServer", "smtp50");
defaultPref("mail.identity.id50.organization", "");
lockPref("mail.account.account50.identities", "id50");
lockPref("mail.account.account50.server", "server50");
// yandex@yandex.ru
accounts = getPref("mail.accountmanager.accounts");
accounts_s = accounts + ",";
if (! (accounts_s.indexOf("account50,")+1) ) {
accounts = accounts + ",account50";
}
pref("mail.accountmanager.accounts",accounts);
} catch(e) {
displayError("lockedPref", e);
}
lockPref("mail.account.account1.identities", "id1,id2");
// ,
var accounts = getPref("mail.accountmanager.accounts");
var accounts_s = accounts + ",";
if (! (accounts_s.indexOf("account1,")+1) ) {
accounts = accounts + ",account1";
}
pref("mail.accountmanager.accounts",accounts);
Source: https://habr.com/ru/post/101905/
All Articles