рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдореЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕реБрдВрджрд░ рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдПрдордПрдкреАрдЖрдИ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ? рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдлреЗрд░рдмрджрд▓ рдФрд░ рдкреНрд░рдХрд╛рд╢ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ - IMAP ред IMAP, рднрдЧрд╡рд╛рди рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж, рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдбрд┐рдЧреНрд░реА рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ рд╕рднреА рдИрдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдпрд╛ рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╛рдореВрд▓реА рд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рддреЛ, рд╣рдо рдЪрд╛рд╣реЗрдВрдЧреЗ:
- рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП - рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдоред рдорд╛рдирдХреАрдХреГрдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореВрд░реНрдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдУрдПрд╕ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛, рдлрд┐рд░ рддреБрд░рдВрдд рдПрдХреНрд╕рдЪреЗрдВрдЬ рдЦрд░реАрджрдирд╛ рдФрд░ рддреИрдирд╛рдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдХрд┐рд╕реА рднреА рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред
- IMAP рдФрд░ IMAP ACL рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдердиред рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдпрд╛ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдореЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВред
- рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреЗрдВрджреНрд░реАрдп рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреАред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдкреНрд░рд╕рд┐рджреНрдз рдореИрдВ рдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдмрджрд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдореИрдВ Dovecot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд▓рдЪреАрд▓реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ Dovecot рдПрдХрдорд╛рддреНрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ IMAP рд╕рдорд░реНрдерди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ ред рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдзрд┐рдХрддрдо рджрдХреНрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдХрдо рд╕реЗ рдХрдо IMAP ACL рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╡рд┐рдХрд▓реЛрдВ рдореЗрдВ
рдЕрдм рд╕реАрдзреЗ рдердВрдбрд░рдмрд░реНрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдердВрдбрд░рдмрд░реНрдб рдкрд╛рда рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕реЗ рдкреНрдпрд╛рд░реЗ рд╣реЛрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рд╣рдж рддрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗред рдердВрдбрд░рдмрд░реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред рдФрд░ рдердВрдбрд░рдмрд░реНрдб рд╕рд┐рд░реНрдл рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рдкрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╣реБрдд рд╣реА рдордЬреЗрджрд╛рд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдЖрдк рдЬреЗрдПрд╕ рдХреА рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдердВрдбрд░рдмрд░реНрдб рдореЗрдВ рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреВрд░реНрдг рд╕реЗ рджреВрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред
рдореБрдЦреНрдп рдердВрдбрд░рдмрд░реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░реАрдлрд╝реЗрд╕реЗрдЬ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ: рдердВрдбрд░рдмрд░реНрдб рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдпрд╛ рддреЛ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ (рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП), рдпрд╛ рдРрдкрдбрд╛рдЯрд╛ рдореЗрдВ (рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП), рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ (рдердВрдбрд░рдмрд░реНрдб рдкреЛрд░реНрдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП) рд╕реНрдерд┐рдд рд╣реИред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рднреА рдлреЙрд░реНрдо рдХреА рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
user_pref("app.update.auto", false);
, .
prefs.js , Thunderbird. , prefs.js. ->..., , ...
, . - , .
Mozilla AutoConfig (aka Mission Control)
. , prefs.js , , Thunderbird , prefs.js.
JavaScript , , JavaScript .
Thunderbird. greprefs/all.js, /usr/lib/thunderbird-xxx/ Ubuntu Linux Thunderbird.exe Windows. :
pref("general.config.obscure_value", 0); pref("general.config.filename", "thunderbird.cfg");
, Thunderbird, . , 0.
thunderbird.cfg. , Thunderbird. , Thunderbird Linux
which thunderbird
Windows , , .
thunderbird.cfg? JavaScript , 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)
, . , , .
, ?
- pref тАФ . Thunderbird, thunderbird.cfg, .
- defaultPref тАФ . .
- lockPref тАФ , , . , .
- unlockPref тАФ , .
- getPref тАФ .
- clearPref тАФ .
- getenv тАФ .
thunderbird.cfg, ┬л┬╗ Thunderbird:
// 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); }
, , . try , ( Thunderbird ). , , . , , , mail.server.server.socketType .
: - Thunderbird , Thunderbird .
Thunderbird ( all.js!), , Thunderbird , , LDAP .
Thunderbird. , lockPref(), ┬л┬╗. тАФ - .
, , localfoldersserver IMAP . IMAP , , , , .
, JavaScript , . , thunderbird.cfg . , .
Thunderbird URL. тАФ , general.config.filename all.js ( thunderbird.cfg) :
lockPref("autoadmin.global_config_url", "http://mail.domain.com/thunderbird.cfg"); lockPref("autoadmin.append_emailaddr", false);
, . тАФ , .
: Thunderbird. , JavaScript, , . тАФ , SQL LDAP . .
, . HTTP , PHP Perl , , .
тАФ , Thunderbird, , - . Thunderbird getent, URL GET-. : Thunderbird - URL GET- autoadmin.global_config_url. , mod_rewrite URL URL c GET- URL .
, . thunderbird.cfg, Thunderbird, :
// 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);
malamut Thunderbird
http://mail.domain.com/tb/user/malamut
mail.domain.com Apache mod_rewrite mod_perl, . tb/ mail.domain.com Perl- conf.pl, Thunderbird, .htaccess :
Options -Indexes +ExecCGI AddHandler cgi-script .pl RewriteEngine on RewriteBase /tb RewriteRule ^user/(.*) conf.pl?user=$1 [L]
URL
http://mail.domain.com/tb/user/malamut
URL
http://mail.domain.com/tb/conf.pl?user=malamut
Perl , GET- Thunderbird.
:
#!/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); }
, Thunderbird, Perl .
, Thunderbird, , . , тАФ , .
, , Thunderbird, .
Thunderbird . , , SMTP , Thunderbird . - , , , . - , . тАФ , 1.
, - , , , Thunderbird , . :
lockPref("mail.account.account1.identities", "id1,id2");
Thunderbird (account), , (identity). , , mail.account.accountN, N тАФ . , , mail.identity.idN, N тАФ .
Thunderbird mail.accountmanager.accounts. , Thunderbird. , Thunderbird, , .
N mail.account.accountN.identities. IMAP mail.account.accountN.server, SMTP mail.identity.idN.smtpServer.
, , - , , .
-, JavaScript , . , :
// , var accounts = getPref("mail.accountmanager.accounts"); var accounts_s = accounts + ","; if (! (accounts_s.indexOf("account1,")+1) ) { accounts = accounts + ",account1"; } pref("mail.accountmanager.accounts",accounts);
, , . , .
, Perl . , Yandex , . Thunderbird , , Yandex ! .
, - yandex . , , , , , , . , , .
, . Thunderbird , , - , . , , .
Thunderbird
Thunderbird . , Thunderbird , . .
, IMAP ACL . Thunderbird Lightning, , , .
, , , extensions/, Thunderbird.
, . default/profile. , , .
!