Автоматическая конфигурация AlterOffice AMail 2025

Автоматическая конфигурация AlterOffice AMail 2025

Оглавление

1) Конфигурация с помощью AutoConfig

        - Настройка Autoconfig

        - Функции AutoConfig

        - Конфигурация учетных записей

                - IMAP

                - AMailEx (Будет доступно начиная с 2025.3)

2) Конфигурация с помощью policies.json


1) Конфигурация с помощью AutoConfig


Конфигурация с помощью Autoconfig известна также под именем Mission Control Desktop (MCD).

Файлы AutoConfig можно использовать для установки и блокировки параметров, автоматической настройки учетных записей. Данный механизм позволяет настраивать параметры приложения на основе свойств пользователей, полученных либо из переменных системной среды, либо из каталога LDAP организации.

Настройка Autoconfig


1. Создать autoconfig.js в папке установки: c:\Program Files\AlterOffice AMail\defaults\pref\autoconfig.js или Он должен содержать следующие две строки:

pref("general.config.filename", "amail.cfg");
pref("general.config.obscure_value", 0);
Первая строка определяет наименование AutoConfig-файла. Имя файла можно изменить, но расположения файла изменить нельзя.

Вторая строка указывает на то, что файл автоматической конфигурации не должен быть скрыт. По умолчанию AlterOffice AMail ожидает, что файл будет с побайтовым смещением 


Обратите внимание, все файлы конфигурации должны быть в кодировке utf-8


В случае необходимости шифрования конфигурационного файла, указать значение

pref("general.config.obscure_value", 13);
  1. Создать amail.cfg в папке установки на верхнем уровне: c:\Program Files\AlterOffice AMail Он всегда должен начинаться со строки-комментария, например:

// ВАЖНО: Комментарий конфигурационного файла

Данный файл несмотря на расширение .cfg является файлом JavaScript. Это позволяет записывать в файл дополнительный JavaScript код для добавления необходимой логики в различных ситуациях. Для конфигурационного файла можно использовать скрипт файла "encode_config.pl" :

#!/usr/bin/perl
# Usage to do byteshift of 13
#   To decode: encode_config.pl -s -13 <amail.cfg >amail.cfg.txt
#   To encode: encode_config.pl -s 13 <amail.cfg.txt >amail.cfg
use strict;
use Getopt::Std;
use vars qw/$opt_s/;
getopts("s:");
if(!defined $opt_s) {
die "Missing shift\n";
}
my $buffer;
while(1) {
binmode(STDIN, ":raw");
my $n=sysread STDIN, $buffer, 1;
if($n == 0) {
last;
}
my $byte = unpack("c", $buffer);
$byte += 512 + $opt_s;
$buffer = pack("c", $byte);
binmode(STDOUT, ":raw");
syswrite STDOUT, $buffer, 1;
}


Для шифрования используйте команду для запуска скрипта с параметрами: encode_config.pl -s 13 <amail.cfg.txt >amail.cfg
Для дешифрования используйте команду для запуска скрипта с параметрами: encode_config.pl -s -13 <amail.cfg >amail.cfg.txt


Функции AutoConfig


Следующие функции доступны внутри AutoConfig-файла:

Функция

Описание

pref(prefName, value)

Устанавливает параметру пользовательское значение. Эта функция явно устанавливает параметр как пользовательский параметр. Это означает, что если пользователь изменил значение, оно будет

сбрасываться при каждом запуске приложения.


defaultPref(prefName, value)

Устанавливает параметру значение по умолчанию. Это то значение, которое параметр имеет, когда пользователь не устанавливает никакое значение или пользователь сбрасывает настройки. Оно может быть навсегда изменено пользователем.

lockPref(prefName, value)

Устанавливает параметру значение по умолчанию и блокирует его. Это наиболее часто используемая

функция. Блокировка параметра не даёт пользователи его изменять и в большинстве случаев отключает настройки в графическом интерфейсе, что даёт пользователю очевидное понимание, что параметр был отключен.

unlockPref(prefName)

Разблокирует параметр. В качестве примера, это может быть использовано в случае, когда настройки должны быть заблокированы для всех пользователей, но разблокированы для определенных

пользователей.

getPref(prefName)

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

clearPref(prefName)

Удаляет пользовательское значение параметра, возвращая его к значению по умолчанию.

displayError(funcname, message)

отображает ошибку в определенном формате, что является удобным инструментом для отладки.

Netscape.cfg/AutoConfig failed. Please contact your system administrator. Error: [funcname] failed: [message]

getenv(name)

Получение значения переменной среды. Это может обеспечить доступ к таким вещам, как имена пользователей и другая системная информация.

setLDAPVersion(version)

Устанавливает версию LDAP (возможные значения: 2, 3)

getLDAPAttributes(host, base, filter, attribs, isSecure)

Получение значений атрибутов LDAP

getLDAPValue(str, key)

Обрабатывает строку и возвращает значение атрибута.

Конфигурация учетных записей

Ветка mail.* — одна из самых больших групп настроек, которыми можно управлять с помощью autoconfig. Настройка правильной комбинации mail.account, mail.server, mail.identity и mail.smtpserver позволяет настроить учетную запись. Для этого необходимо их правильно связать.

Учетные записи в AMail (за исключением учетной записи Локальные папки) состоят из следующих компонентов: 

- account

- server (для входящей почты)

- identities (одна или несколько, в интерфейсе представлены в меню "Дополнительные адреса электронной почты") 

- smtp server (для исходящей почты)

Компонент

Свойство

Описание

Account

mail.account.accountN

Связывает server и identity

Server

mail.server.serverN

Настройки для сервера Входящей почты (IMAP/POP/AMailEx)

Identity

mail.identity.idN

Имя, почтовый адрес, настройки Копии и папки, связка с сервером Исходящей почты

SMTP Server

mail.smtpserver.smtpN

Настройки сервера Исходящей почты SMTP

Accounts list

mail.accountmanager.accounts

Список mail.account идентификаторов через запятую "account1,account2"

Default account

mail.accountmanager.defaultaccount

Учетная запись по умолчанию

SMTP servers

mail.smtpservers

Список mail.smtpserver идентификаторов через запятую "smtp1,smtp2"

Default SMTP

mail.smtp.defaultserver

Сервер Исходящей почты по умолчанию

IMAP

Пример конфигурации учетной записи IMAP

// ВАЖНО: Начните свой код со второй строки
try {

// Получаем имя пользователя и домашнюю папку
   if (getenv("USER") != "") {
   // *NIX параметры
       let env_user = getenv("USER");
       let env_home = getenv("HOME");
   } else {
       // Windows параметры
       let env_user = getenv("USERNAME");
       let env_home = getenv("HOMEPATH");
   }
   env_user = "testuser8";

// Ставим аккаунтом по умолчанию account2 (account1 относится к Локальным папкам)
   defaultPref("mail.accountmanager.defaultaccount", "account2");

// Добавляем account2 в список аккаунтов
   defaultPref("mail.accountmanager.accounts", "account1,account2");

// Связываем account2 сервер server2 (IMAP) (server1 относится к Локальным папкам)
   lockPref("mail.account.account2.server", "server2");

// Настройки IMAP сервера
   lockPref("mail.server.server2.type", "imap");
   lockPref("mail.server.server2.hostname", "imap.almipartner.ru");
   lockPref("mail.server.server2.realhostname", "imap.almipartner.ru");
   lockPref("mail.server.server2.port", 143);              //Порт сервера
   lockPref("mail.server.server2.socketType", 2);          // Использовать STARTLS
   lockPref("mail.server.server2.name", env_user);         // Логин пользователя
   lockPref("mail.server.server2.userName", env_user);     // Логин пользователя
   lockPref("mail.server.server2.realuserName", env_user); // Логин пользователя
   lockPref("mail.server.server2.login_at_startup", true); // ! Обязательный параметр при автоматически
   lockPref("mail.server.server2.isSecure", true);         // Защищённый сервер

// Настройки SMTP сервера
   lockPref("mail.smtpserver.smtp1.hostname", "smtp.almipartner.ru");
   lockPref("mail.smtpserver.smtp1.port", 587);
   lockPref("mail.smtpserver.smtp1.auth_method", 1);
   lockPref("mail.smtpserver.smtp1.username", env_user);
   lockPref("mail.smtpserver.smtp1.try_ssl", 2);
   lockPref("mail.smtp.defaultserver", "smtp1");
   lockPref("mail.smtpservers", "smtp1");

// Настройки идентификатора пользователя
   defaultPref("mail.identity.id1.fullName", env_user);
   defaultPref("mail.identity.id1.fcc_folder", "imap://" + env_user + "@imap.almipartner.ru/Sent");
   lockPref("mail.identity.id1.useremail", env_user + "@almipartner.ru");
   lockPref("mail.identity.id1.reply_to", env_user + "@almipartner.ru");
   lockPref("mail.identity.id1.valid", true);
   lockPref("mail.identity.id1.smtpServer", "smtp1");

// Привязываем ID к аккаунту account2
   lockPref("mail.account.account2.identities", "id1");

} catch (e) {
   displayError("lockedPref", e);
}


EWS

Пример конфигурации учетной записи через плагин AMailEx (доступно начиная с версии  2025.3)
// ВАЖНО: Начните свой код со второй строки

try {

// Получаем имя пользователя и домашнюю папку
   if (getenv("USER") != "") {

       // *NIX параметры
       let env_user = getenv("USER");
       let env_home = getenv("HOME");

   } else {

// Windows параметры
       let env_user = getenv("USERNAME");
       let env_home = getenv("HOMEPATH");
   }

   env_user = "testuser8";
   let displayName = "Тестовый Пользователь 8";
   let domain = "almipartner.ru";
   let hostname = "mail.almipartner.ru";
   let ewsURL = "https://" + hostname + "/EWS/Exchange.asmx";
   defaultPref("devtools.debugger.prompt-connection", false);

// Ставим аккаунтом по умолчанию account2 (account1 относится к Локальным папкам)
   defaultPref("mail.accountmanager.defaultaccount", "account2");

// Добавляем account2 в список аккаунтов
   defaultPref("mail.accountmanager.accounts", "account2,account1");

// Связываем account2 сервер server2 (AMailEx) (server1 относится к Локальным папкам)
   defaultPref("mail.account.account2.server", "server2");

 

// Настройки сервера
   defaultPref("mail.server.server2.type", "amailex");
   defaultPref("mail.server.server2.hostname", hostname);
   defaultPref("mail.server.server2.socketType", 3);          // Использовать SSL
   defaultPref("mail.server.server2.name", env_user + "@" + domain + " on " + hostname);
   defaultPref("mail.server.server2.userName", env_user);     // Логин пользователя
   defaultPref("mail.server.server2.login_at_startup", true); // ! Обязательный параметр при автом.
   defaultPref("mail.server.server2.useAB", true);            // Использовать автодополнение
   defaultPref("mail.server.server2.ewsURL", ewsURL);
   defaultPref("mail.server.server2.check_new_mail", true);   // Проверять наличие новых сообщений
   defaultPref("mail.server.server2.check_time", 5);          // Каждые 5 минут
   defaultPref("mail.server.server2.spamLevel", 0);           // Анти-спам фильтры

// Настройки идентификатора пользователя
   defaultPref("mail.identity.id1.fullName", displayName);    // Имя отправителя
   defaultPref("mail.identity.id1.fcc_folder", "amailex://" + env_user + "@" + hostname + "/Sent");
   defaultPref("mail.identity.id1.useremail", env_user + "@" + domain);
   defaultPref("mail.identity.id1.reply_on_top", 1);          // Поместить курсор перед цитируемым текстом
   defaultPref("mail.identity.id1.sig_bottom", false);        // Ставить подпись после моего ответа
   defaultPref("mail.identity.id1.valid", true);
   defaultPref("mail.identity.id1.smtpServer", "server2");    // В качестве исходящего сервера указываем тот же что и для входящих сообщений

// Привязываем ID к аккаунту account2
   defaultPref("mail.account.account2.identities", "id1");

   let extensionPrefix = "extensions.amailex.";

// Debug логи расширения AMailEx
   pref(extensionPrefix + "log.dump", true);
   pref(extensionPrefix + "log.file", true);
   pref(extensionPrefix + "log.level", "Debug");
   pref(extensionPrefix + "logBodies", true);

// Настройки расширения AMailEx
   defaultPref(extensionPrefix + "mail.account.account2.identities", "id1");
   defaultPref(extensionPrefix + "mail.account.account2.server", "server2");
   defaultPref(extensionPrefix + "mail.identity.id1.fullName", displayName);
   defaultPref(extensionPrefix + "mail.identity.id1.smtpServer", "server2");
   defaultPref(extensionPrefix + "mail.identity.id1.useremail", env_user + "@" + hostname);
   defaultPref(extensionPrefix + "mail.identity.id1.valid", true);
   defaultPref(extensionPrefix + "postamailex17", true);
   defaultPref(extensionPrefix + "postamailex19", true);

} catch (e) {
   displayError("lockedPref", e);
}

Итого для применения автонастройки ранее созданные файлы необходимо разместить в соответствующие каталоги:

autoconfig.js - скопировать в каталог программы /usr/lib64/alteroffice-amail/defaults/pref/autoconfig.js

amail.cfg  - Аналогично также скопировать в /usr/lib64/alteroffice-amail/amail.cfg



2) Конфигурация с помощью policies.json


Конфигурация с помощью policies.json поддерживается на Windows, Linux


Поддержку политики можно реализовать с помощью файла policies.json. В отличие от управления AMail с помощью групповой политикиWindows, policies.json совместим с разными платформами, что делает его предпочтительным методом для корпоративных сред, в которых рабочие станции работают под управлением различных операционных систем.

Для реализации этой поддержки политики необходимо создать файл policies.json. Этот файл помещается в каталог с именем distribution в установочном каталоге AlterOffice AMail.

Примеры использования настроек локальных политик 
1) Файл policies.json выглядит следующим образом:

{
"policies": {
"BlockAboutConfig": true
}
}


В этом примере мы устанавливаем для политики BlockAboutConfig значение true, что означает, что у пользователя не будет доступа к странице about:config.
2) Установка сертификатов в хранилище сертификатов приложения: 

{
 "policies": {
   "Certificates": {
     "Install": [
       "/usr/lib64/alteroffice-amail/Пример_сертификата.pem"
     ],
     "ImportEnterpriseRoots": true
   }
 }
}

Где размещенный сертификат по локальному пути /usr/lib64/alteroffice-amail/Пример_сертификата.pem автоматически определиться почтовым клиентом при инициализации. 


Список поддерживаемых политик:

Наименование политики (Policy Name) Описание политики
3rdparty Разрешить WebExtensions настраивать политики
AppAutoUpdate Включить или отключить автоматическое обновление приложения
AppUpdatePin Запретить обновление приложение выше указанной версии.
AppUpdateURL Настройка URL для обновления приложения.
Authentication Настройте сайты, поддерживающие интегрированную аутентификацию
BackgroundAppUpdate Включить или отключить фоновое обновление (Windows).
BlockAboutAddons Блокировка доступа к странице Дополнения и темы(about:addons).
BlockAboutConfig Блокировка доступа к Редактору настроек about:config.
BlockAboutProfiles Блокировка доступа к странице конфигурации профилей (about:profiles).
BlockAboutSupport Блокировка доступа к странице Информация для решения проблем (about:support).
CaptivePortal Включить или отключить обнаружение captive portals.
Certificates -> ImportEnterpriseRoots Сертификаты доверия, добавленные в хранилище сертификатов операционной системы пользователем или администратором
Certificates -> Install Установка сертификатов в хранилище сертификатов приложения
Cookies Настройки cookie.
DefaultDownloadDirectory Установка каталога загрузки по умолчанию
DisableAppUpdate Отключение обновления приложения
DisableBuiltinPDFViewer Отключить встроенный предпросмотр файлов PDF
DisabledCiphers Отключение заданных ciphers.
DisableDeveloperTools Запретить доступ к инструментам разработчика
DisableMasterPasswordCreation Запретить создавать основной (главный) пароль
DisablePasswordReveal Запрет отображения паролей в менеджере паролей
DisableSafeMode Отключить безопасный режим в браузере
DisableSecurityBypass Запретить пользователю обходить меры безопасности в определенных случаях
DisableSystemAddonUpdate Запретить установку или обновление системных дополнений
DisableTelemetry Отключение телеметрии
DNSOverHTTPS Настройка DNS через HTTPS
DownloadDirectory Установка директории для сохранения файлов по умолчанию
Extensions Управление установкой, удалением расширений
ExtensionSettings Настройка расширений
ExtensionUpdate Управление обновлением расширений
Handlers Настройка приложений по умолчанию
HardwareAcceleration Управление аппаратным ускорением
InstallAddonsPermission Настройте политику установки расширений по умолчанию, а также источники, из которых разрешена установка расширений
ManualAppUpdateOnly Разрешить только ручные обновления и не уведомлять пользователя об обновлениях
NetworkPrediction Включить или отключить прогнозирование сети (предварительную загрузку DNS)
OfferToSaveLogins Управление тем, будет ли приложение предлагать сохранять пароли.
OfferToSaveLoginsDefault Установка значения по умолчанию, указывающего, будет ли приложение предлагать сохранять пароли
PasswordManagerEnabled Запретить доступ к менеджеру паролей.
PDFjs Отключение или настройки PDF.js, встроенного просмотрщика PDF-файлов.
Preferences Установка и блокировка настроек
PrimaryPassword Требовать или запрещать использование основного (главного) пароля.
PromptForDownloadLocation Перед загрузкой каждого файла спрашивать, где его сохранить.
Proxy Настройки прокси
RequestedLocales Установка списка запрашиваемых локалей для приложения в порядке предпочтения.
SearchEngines Добавить поисковую систему
SearchEngines -> Add Управление обновлением расширений
SearchEngines -> Default Установить поисковую систему по умолчанию
SearchEngines -> PreventInstalls Запретить установку поисковых систем из сети
SearchEngines -> Remove Скрыть встроенные поисковые системы
SSLVersionMax Установка максимальной версии TLS.
SSLVersionMin Установка минимальной TLS

Прикреплённые файлы
encode_config.pl
404kb