Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№115-04-2010 13:08:26

Malamut
Участник
 
Группа: Members
Зарегистрирован: 13-04-2010
Сообщений: 14
UA: Opera 10.5

Автоконфигурирование Thunderbird

Собственно стоит задача - настроить автоконфигурацию 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
Вопрос отпал сам собой, я дурак :P Мы же с сервера запрашиваем обычный текст, так этот текст можно спокойно генерить Perl скриптом. Весна, пора просыпаться :D

Отсутствует

 

№215-04-2010 17:00:27

Malamut
Участник
 
Группа: Members
Зарегистрирован: 13-04-2010
Сообщений: 14
UA: Opera 10.5

Re: Автоконфигурирование Thunderbird

Ан нет. Мне необходимо передать в perl скрипт текущее имя пользователя системы. Делают так:

lockPref("autoadmin.global_config_url", "http://websrv0.dncm.ru/thunderbird/conf.pl?user=test");

Но эта сволочь не передаёт имя пользователя на сервер через GET! Вопрос опять остаётся в силе: как сделать автоконфигурирование с помощью perl скрипта, а не только JS. Куда ни плюнь - ничего не работает как должно((

Отсутствует

 

№315-04-2010 17:35:58

Malamut
Участник
 
Группа: Members
Зарегистрирован: 13-04-2010
Сообщений: 14
UA: Opera 10.5

Re: Автоконфигурирование Thunderbird

Ну что ж, я опять дурак! Можно на сервере через правила разрулить перенаправление /conf/username в conf.pl?user=test. Но блин это называется гланды через задницу, и не удивлюсь, если на этом пути тоже окажутся проблемы.

Так что вопрос остаётся: как по нормальному сделать автоконфигурирование perl скриптом??

Отсутствует

 

№406-05-2010 14:53:56

AlektroNik
Участник
 
Группа: Members
Зарегистрирован: 06-05-2010
Сообщений: 7
UA: Namoroka 3.6

Re: Автоконфигурирование Thunderbird

Тоже интересует этот вопрос, получилось найти выход из ситуации?

Отсутствует

 

№506-05-2010 15:18:20

Malamut
Участник
 
Группа: Members
Зарегистрирован: 13-04-2010
Сообщений: 14
UA: Opera 10.5

Re: Автоконфигурирование Thunderbird

Ну да, я сделал так:
1. Конфиг тандербирда имеет такой вот вид:
all.js

Выделить код

Код:

// 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 передавать что-то скрипту, да и вообще ничего не умеет. Так что апачевские алиасы снова спасли отца русской демократии.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]