>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Thunderbird http://forum.mozilla-russia.org/viewforum.php?id=7 >Автоконфигурирование Thunderbird http://forum.mozilla-russia.org/viewtopic.php?id=44161 |
Malamut > 15-04-2010 13:08:26 |
Собственно стоит задача - настроить автоконфигурацию Thnuderbird. Чтобы новому пользователю вообще никаких настроек не пришлось вводить. Ну это просто: http://mit.edu/~thunderbird/www/maintainers/autoconfig.html Делаем примерно как там написано, при установке Thunderbird добавляем пару строчек в all.js, потом делаем подгрузку конфига с сервера и всё работает. Но в JS не получается разрулить нормально различные дополнительные опции. Несмотря на какой-то мутный механизм коннекта к LDAP, приконнектиться к AD с указанием пользователя и пароля невозможно. И много чего ещё не разрулить только исходя и переменных среды. В итоге рождается сама собой идея: каким-нибудь раком возложить процесс установки нужных параметров на perl скрипт. И вот вопрос: каким? Я по старой памяти пытался сделать в автоконфиге объект XMLHttpRequest - не сработало. Как ещё можно получить данные в JS из стороннего скрипта? Мне необходима именно автоконфигурация, т.е. чтобы новый пользователь запускает тандербирд - и у него автоматически тут же создаётся новый профиль и подтягиваются правильные настройки. Нужно в общем-то только одно получить в автоконфиге данные из AD с авторизацией и на основе этих данных сделать lockPref кой для чего. Подойдёт любой вариант решения проблемы. 15-04-2010 13:26:19 |
Malamut > 15-04-2010 17:00:27 |
Ан нет. Мне необходимо передать в perl скрипт текущее имя пользователя системы. Делают так: lockPref("autoadmin.global_config_url", "http://websrv0.dncm.ru/thunderbird/conf.pl?user=test"); Но эта сволочь не передаёт имя пользователя на сервер через GET! Вопрос опять остаётся в силе: как сделать автоконфигурирование с помощью perl скрипта, а не только JS. Куда ни плюнь - ничего не работает как должно(( |
Malamut > 15-04-2010 17:35:58 |
Ну что ж, я опять дурак! Можно на сервере через правила разрулить перенаправление /conf/username в conf.pl?user=test. Но блин это называется гланды через задницу, и не удивлюсь, если на этом пути тоже окажутся проблемы. Так что вопрос остаётся: как по нормальному сделать автоконфигурирование perl скриптом?? |
AlektroNik > 06-05-2010 14:53:56 |
Тоже интересует этот вопрос, получилось найти выход из ситуации? |
Malamut > 06-05-2010 15:18:20 |
Ну да, я сделал так: Выделить код Код:// For AutoConfiguration pref("general.config.obscure_value", 0); pref('general.config.filename', 'thunderbird.cfg'); thunderbird.cfg Выделить код Код:// Начальные параметры настройки 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); 2. На сервере в .htaccess в папочке tb: Выделить код Код:Options -Indexes +ExecCGI AddHandler cgi-script .pl ## make sure nobody gets the htaccess files <Files ~ "^[\._]ht"> Order allow,deny Deny from all Satisfy All </Files> RewriteEngine on RewriteBase /tb RewriteRule ^user/(.*) conf.pl?user=$1 [L] 3. Ну и соответственно conf.pl скрипт, который начинается примерно так: Выделить код Код:#!/usr/bin/perl use 5.010; use CGI qw/:standard/; # Прикидываемся жаваскриптом print header( -type=>'application/javascript' ); # Username - из GET переменных $user = param('user'); unless ($user) { die "We need a user, please!\n" } # Всякая обработка $user ... ######################################################################### # Генерим конфиг print <<HEAD; //Параметры автонастройки Thunderbird для пользователя $user ($name) try { HEAD print <<SERVERS; // Основные параметры настройки defaultPref("mail.accountmanager.accounts","account1"); defaultPref("mail.accountmanager.defaultaccount", "account1"); defaultPref("mail.smtpservers", "smtp1"); // SMTP lockPref("mail.account.account1.server", "server1"); // IMAP lockPref("mail.accountmanager.localfoldersserver", "server1"); // Отключаем полосочку "Узнайте о своих правах" при первом запуске defaultPref("mail.rights.version", 1); ... SERVERS Других способов я не нашёл, ибо TB не умеет напрямую через GET передавать что-то скрипту, да и вообще ничего не умеет. Так что апачевские алиасы снова спасли отца русской демократии. |