Initial commit.
This commit is contained in:
parent
3cbec5a2cd
commit
f4a731b35b
7 changed files with 243 additions and 2 deletions
|
|
@ -1,2 +1,4 @@
|
|||
# thunderbird-mcd
|
||||
Mission Control Desktop aka Autoconfig for Thunderbird
|
||||
thunderbird-mcd
|
||||
=====================
|
||||
|
||||
Provides automated configuration for Thunderbird via PHP + OpenLDAP.
|
||||
|
|
|
|||
39
ldap.cfg.php
Normal file
39
ldap.cfg.php
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
//LDAP
|
||||
// Connection
|
||||
$ldap_host = 'ldap.company.local';
|
||||
$ldap_port = '389';
|
||||
$ldap_user = 'cn=reader,ou=people,dc=company,dc=local';
|
||||
$ldap_password = 'reader';
|
||||
// The root of catalog
|
||||
$ldap_root = 'dc=company,dc=local';
|
||||
// Base for search uid
|
||||
$ldap_base = "ou=people,$ldap_root";
|
||||
// Base for search memberUid
|
||||
$ldap_base_manager = "cn=TopManagers,ou=groups,$ldap_root";
|
||||
// VARS
|
||||
$ldap_uid = $_GET['user'];
|
||||
$ldap_filter = "(uid=$ldap_uid)";
|
||||
$ldap_filter_manager = "(memberUid=$ldap_uid)";
|
||||
$ldap_target_gid = '1100';
|
||||
// Organisation
|
||||
$telnumber_all = '8-800-2000-600';
|
||||
$telnumber_manager = '8-800-2000-666';
|
||||
$icq_default = 'ICQ (Public): 911911, 119199';
|
||||
// Thunderbird
|
||||
$mail_domain = 'mx.company.local';
|
||||
$mail_server_type = 'imap';
|
||||
$mail_server_port = '143';
|
||||
$mail_smtp_desc = 'SMTP server of our company';
|
||||
$mail_smtp_port = '25';
|
||||
$mail_identity_org = 'Damage, Inc.';
|
||||
$ldap_nonascii_desc = 'Domain';
|
||||
$ldap_nonascii_uri = "ldap://$ldap_host/$ldap_base??sub?(objectClass=posixAccount)";
|
||||
$quicktext_default_import = '/home/exchange/quicktext.xml';
|
||||
$messenger_save_dir = '/tmp';
|
||||
// Signature
|
||||
$siga_marketing = "Marketing bullshit<br>";
|
||||
$siga_prefix = "Best regards, ";
|
||||
$siga_url = "<br>URL";
|
||||
$siga_postfix = "Some spam";
|
||||
?>
|
||||
8
ldap.defaults.php
Normal file
8
ldap.defaults.php
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
// DEFAULT LDAP VALUES
|
||||
$ldap_gid = '';
|
||||
$ldap_givenname = '';
|
||||
$ldap_sn = '';
|
||||
$ldap_title = '';
|
||||
$ldap_mail = '';
|
||||
?>
|
||||
88
ldap.settings.php
Normal file
88
ldap.settings.php
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
<?php
|
||||
print <<<END
|
||||
try {
|
||||
pref("mail.accountmanager.accounts", "account1");
|
||||
lockPref("mail.server.server1.type", "$mail_server_type");
|
||||
lockPref("mail.server.server1.hostname", "$mail_domain");
|
||||
lockPref("mail.server.server1.realhostname", "$mail_domain");
|
||||
lockPref("mail.server.server1.port", $mail_server_port);
|
||||
lockPref("mail.server.server1.socketType", 2);
|
||||
lockPref("mail.server.server1.name", "$ldap_mail");
|
||||
lockPref("mail.server.server1.userName", "$ldap_mail");
|
||||
lockPref("mail.server.server1.realuserName", "$ldap_mail");
|
||||
lockPref("mail.server.server1.login_at_startup", true);
|
||||
lockPref("mail.server.server1.isSecure", true);
|
||||
lockPref("mail.server.server1.downloadByDate", false);
|
||||
lockPref("mail.server.server1.downloadUnreadOnly", false);
|
||||
lockPref("mail.server.server1.keepUnreadOnly", false);
|
||||
lockPref("mail.server.server1.offline_download", false);
|
||||
lockPref("mail.server.server1.check_new_mail", true);
|
||||
lockPref("mail.server.server1.empty_trash_on_exit", false);
|
||||
lockPref("mail.server.server1.moveOnSpam", true);
|
||||
lockPref("mail.server.server1.purgeSpam", true);
|
||||
lockPref("mail.server.server1.spamActionTargetAccount", "imap://$ldap_mail_replaced@$mail_domain");
|
||||
lockPref("mail.server.server1.whiteListAbURI", "moz-abmdbdirectory://abook.mab moz-abmdbdirectory://history.mab");
|
||||
lockPref("mail.server.server1.check_time", 3);
|
||||
lockPref("mail.account.account1.server", "server1");
|
||||
lockPref("mail.smtpserver.smtp1.hostname", "$mail_domain");
|
||||
lockPref("mail.smtpserver.smtp1.port", $mail_smtp_port);
|
||||
lockPref("mail.smtpserver.smtp1.description", "$mail_smtp_desc");
|
||||
lockPref("mail.smtpserver.smtp1.try_ssl", 2);
|
||||
lockPref("mail.smtpserver.smtp1.auth_method", 3);
|
||||
lockPref("mail.smtpserver.smtp1.username", "$ldap_mail");
|
||||
pref("mail.smtpservers", "smtp1");
|
||||
pref("mail.account.account1.identities", "id1");
|
||||
lockPref("mail.accountmanager.localfoldersserver", "server1");
|
||||
lockPref("mail.accountmanager.defaultaccount", "account1");
|
||||
lockPref("mail.identity.id1.fullName", "$ldap_givenname_exploded $ldap_sn");
|
||||
lockPref("mail.identity.id1.useremail", "$ldap_mail");
|
||||
lockPref("mail.identity.id1.valid", true);
|
||||
lockPref("mail.identity.id1.smtpServer", "smtp1");
|
||||
lockPref("mail.identity.id1.organization", "$mail_identity_org");
|
||||
lockPref("mail.identity.id1.archive_folder", "imap://$ldap_mail_replaced@$mail_domain/Archives");
|
||||
lockPref("mail.identity.id1.draft_folder", "imap://$ldap_mail_replaced@$mail_domain/Drafts");
|
||||
lockPref("mail.identity.id1.drafts_folder_picker_mode", 0);
|
||||
lockPref("mail.identity.id1.fcc_folder", "imap://$ldap_mail_replaced@$mail_domain/Sent");
|
||||
lockPref("mail.identity.id1.fcc_folder_picker_mode", 0);
|
||||
lockPref("mail.identity.id1.stationery_folder", "imap://$ldap_mail_replaced@$mail_domain/Templates");
|
||||
lockPref("mail.identity.id1.reply_on_top", 1);
|
||||
lockPref("ldap_2.servers._nonascii.auth.dn", "");
|
||||
lockPref("ldap_2.servers._nonascii.auth.saslmech", "");
|
||||
lockPref("ldap_2.servers._nonascii.description", "$ldap_nonascii_desc");
|
||||
lockPref("ldap_2.servers._nonascii.filename", "ldap.mab");
|
||||
lockPref("ldap_2.servers._nonascii.maxHits", 50);
|
||||
lockPref("ldap_2.servers._nonascii.uri", "$ldap_nonascii_uri");
|
||||
lockPref("ldap_2.autoComplete.directoryServer", "ldap_2.servers._nonascii");
|
||||
lockPref("ldap_2.autoComplete.useDirectory", true);
|
||||
lockPref("toolkit.telemetry.enabled", true);
|
||||
lockPref("toolkit.telemetry.prompted", 2);
|
||||
lockPref("mail.identity.id1.reply_to", "");
|
||||
lockPref("mail.spam.manualMark", true);
|
||||
lockPref("mail.spam.version", 1);
|
||||
lockPref("mail.rights.version", 1);
|
||||
lockPref("mail.server.default.check_all_folders_for_new", true);
|
||||
pref("extensions.usebccinstead.lastCheckedState", true);
|
||||
pref("extensions.usebccinstead.nonBccCount", 1);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.TLS", true);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.TLS.forced", true);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.activeAuthorization", 1);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.activeHost", 0);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.activeLogin", 1);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.enabled", true);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.firstRunDone", true);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.port.type", 0);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.proxy.type", 1);
|
||||
pref("extensions.sieve.account.$ldap_mail_replaced@$mail_domain.sasl.forced", false);
|
||||
defaultPref("extensions.shrunked.default.maxHeight", 1024);
|
||||
defaultPref("extensions.shrunked.default.maxWidth", 1280);
|
||||
defaultPref("extensions.shrunked.default.quality", 85);
|
||||
defaultPref("quicktext.defaultImport", "$quicktext_default_import");
|
||||
defaultPref("quicktext.firstTime", false);
|
||||
defaultPref("messenger.save.dir", "$messenger_save_dir");
|
||||
lockPref("mail.identity.id1.htmlSigFormat", true);
|
||||
lockPref("mail.identity.id1.htmlSigText", "$signature");
|
||||
} catch(e) {
|
||||
displayError("lockedPref", e);
|
||||
}
|
||||
END;
|
||||
?>
|
||||
10
ldap.siga.php
Normal file
10
ldap.siga.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
function getSignatureAll($siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $main_telnumber, $ldap_extention, $siga_postfix) {
|
||||
return $siga_prefix . $ldap_givenname_exploded . " " . $ldap_sn . ",<br>" . $ldap_title . $siga_url . $main_telnumber . $ldap_extention . $siga_postfix;
|
||||
}
|
||||
|
||||
function getSignatureManager($siga_marketing, $siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $main_telnumber, $ldap_extention, $ldap_pager, $ldap_icq, $siga_postfix) {
|
||||
return $siga_marketing . $siga_prefix . $ldap_givenname_exploded . " " . $ldap_sn . ",<br>" . $ldap_title . $siga_url . $main_telnumber . " " . $ldap_extention . $ldap_pager . $ldap_icq . $siga_postfix;
|
||||
}
|
||||
?>
|
||||
10
ldap.vars.php
Normal file
10
ldap.vars.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
$ldap_gid = ($info[0]["gidnumber"][0]);
|
||||
$ldap_givenname = ($info[0]["givenname"][0]);
|
||||
$ldap_sn = ($info[0]["sn"][0]);
|
||||
$ldap_title = ($info[0]["title"][0]);
|
||||
$ldap_mail = ($info[0]["mail"][0]);
|
||||
$ldap_givenname_exploded = explode(" ",$ldap_givenname);
|
||||
$ldap_givenname_exploded = $ldap_givenname_exploded[0];
|
||||
$ldap_mail_replaced = preg_replace('+@+','%40', $ldap_mail);
|
||||
?>
|
||||
84
thunderbird.php
Normal file
84
thunderbird.php
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
// (c) 2015-2016, Konstantin Shalygin <k0ste@k0ste.ru>
|
||||
|
||||
require_once 'ldap.cfg.php';
|
||||
require_once 'ldap.defaults.php';
|
||||
require_once 'ldap.siga.php';
|
||||
|
||||
if(empty($_GET['user'])) {
|
||||
exit('Error: user not present');
|
||||
}
|
||||
|
||||
$link = ldap_connect($ldap_host, $ldap_port);
|
||||
ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, 3);
|
||||
$ldap_bind = ldap_bind($link, $ldap_user, $ldap_password);
|
||||
|
||||
if(!$ldap_bind) {
|
||||
$ldap_errno = ldap_errno($link);
|
||||
$ldap_error = ldap_err2str($ldap_errno);
|
||||
exit('Error (' . ldap_errno($link) . '): ' . $ldap_error . "\n");
|
||||
}
|
||||
|
||||
$result_uid = ldap_search($link, $ldap_base, $ldap_filter);
|
||||
$entry_uid = ldap_first_entry($link, $result_uid);
|
||||
|
||||
if($entry_uid == false) {
|
||||
ldap_unbind($link);
|
||||
exit('Error: uid not found <br>');
|
||||
}
|
||||
|
||||
$info = ldap_get_entries($link, $result_uid);
|
||||
|
||||
if (isset($info[0]["telephonenumber"]) == false) {
|
||||
$ldap_extention = '';
|
||||
}
|
||||
else {
|
||||
$ldap_extention = ($info[0]["telephonenumber"][0]);
|
||||
$ldap_extention = " exten. 1-$ldap_extention<br>";
|
||||
}
|
||||
|
||||
if (isset($info[0]["telexnumber"]) == false) {
|
||||
$ldap_icq = $icq_default;
|
||||
}
|
||||
else {
|
||||
$ldap_icq = ($info[0]["telexnumber"][0]);
|
||||
$ldap_icq = "ICQ: $ldap_icq";
|
||||
}
|
||||
|
||||
if (isset($info[0]["pager"]) == false) {
|
||||
$ldap_pager = '';
|
||||
}
|
||||
else {
|
||||
$ldap_pager = ($info[0]["pager"][0]);
|
||||
$ldap_pager = "+$ldap_pager<br>";
|
||||
}
|
||||
|
||||
require_once 'ldap.vars.php';
|
||||
|
||||
$result_manager = ldap_search($link, $ldap_base_manager, $ldap_filter_manager);
|
||||
$entry_manager = ldap_first_entry($link, $result_manager);
|
||||
|
||||
if($entry_manager == false) {
|
||||
if($ldap_gid == $ldap_target_gid) {
|
||||
$signature = getSignatureManager($siga_marketing, $siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_all, $ldap_extention, $ldap_pager, $ldap_icq, $siga_postfix);
|
||||
}
|
||||
else {
|
||||
$signature = getSignatureAll($siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_all, $ldap_extention, $siga_postfix);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$ldap_attributes = ldap_get_attributes($link, $entry_manager);
|
||||
$counter = $ldap_attributes["count"];
|
||||
if($counter < 1) {
|
||||
$signature = getSignatureAll($siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_all, $ldap_extention, $siga_postfix);
|
||||
}
|
||||
else {
|
||||
$signature = getSignatureManager($siga_marketing, $siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_manager, $ldap_extention, $ldap_pager, $ldap_icq, $siga_postfix);
|
||||
}
|
||||
}
|
||||
|
||||
ldap_unbind($link);
|
||||
require_once 'ldap.settings.php';
|
||||
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue