Есть способ, хотя для этого нужно лишь немного знания JavaScript. Ты должен:
- Примените два файла конфигурации внутри установочного каталога
- Используйте их для изменения глобальной конфигурации, применяемой ко всем пользователям
Теперь вкратце:
Шаг 1: Настройка общего файла определения конфигурации
Перейдите в папку программы Thunderbird (т.е. %ProgramFiles%\Mozilla Thunderbird
) и создайте файл: defaults\pref\local-settings.js
Добавьте следующий контент:
pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");
Это скажет Thunderbird использовать файл %ProgramFiles%\Mozilla Thunderbird\mozilla.cfg
в качестве шаблона конфигурации.
Шаг 2: Настройка почтовых ящиков
Теперь в mozilla.cfg
вы должны определить настройки почтового ящика. По сути, вы будете работать с переменными конфигурации Mozilla - то же самое, что вы видите при вводе about:config
в адресной строке Firefox или при запуске редактора настроек в Thunderbird.
С помощью этого файла и следующих функций вы можете влиять на конфигурацию Thunderbird глобально (то есть для каждого пользователя, запускающего Thunderbird из одного и того же места установки). Функции:
defaultPref( PrefName, Value )
- устанавливает значение по умолчанию (пользователь может перезаписать его)
lockPref( PrefName, Value )
- устанавливает конкретное значение (пользователь не может его перезаписать)
pref( PrefName, Value)
- форсирует конкретное значение (пользователь может перезаписывать на время сеанса)
Вы также можете прочитать любой преф:
getPref( PrefName )
- читает значение
У вас есть почти полная возможность JavaScript. Конфигурация сервера хранится в дереве mail.server.<servername>.*
.
Вы не знаете компонент <servername>
. Это значение равно server#
, где #
- последовательный номер, назначенный при создании, хотя вы не знаете, в каком порядке пользователь создал свои учетные записи и не удалил ли он ни одну из своих учетных записей.
Но, используя javascript, вы можете найти правильное <servername>
:
- Цикл по всем значениям, хранящимся в переменной
mail.accountmanager.accounts
(он содержит разделенный запятыми список всех учетных записей, таких как: account1,account10,account3,account7,account2
)
- Для каждой учетной записи проверьте, хотите ли вы исправить эту учетную запись (используя один из подпараметров, например:
mail.server.<servername>.hostname
)
- Как только вы найдете правильное
<servername>
, измените его конфигурацию по желанию.
Образец кода
Это простой алгоритм для mozilla.cfg
вы можете использовать для начала:
var allServersString = getPref( "mail.accountmanager.accounts" );
var i, serverName, myServerConfig, allServers = allServersString.split(",");
// For each account...
for ( i = 0; i < allServers.length; i++ ) {
// Get account number
serverName = "server" + allServers[i].substr(7);
// If hostname of account matches our hostname, we found our `servername`
if ( getPref( "mail.server." + serverName + ".hostname" ) == "imap.myOldServer.com" )
myServerConfig = "mail.server." + serverName;
}
// Change parameters at your discretion...
pref( "aaa." + myServerConfig + ".hostname", "imap.myNewServer.com" );
// ...
Заметки
- Возможно, вам придется немного поэкспериментировать с выбором правильной функции
pref/lockPref
, которая наилучшим образом соответствует вашим потребностям
- Вам придется сделать то же самое для SMTP-серверов, но это немного сложнее. Как только вы узнаете правильное
<servername>
вам нужно использовать #
из <servername>
, затем получить список идентификаторов идентификаторов idXXX
из mail.account.account#.identities
и изменить параметры каждого идентификатора, назначенного учетной записи (хранится в mail.identity.idXXX.*
. Вуаля! :D