Автоматическая конфигурация 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);
}

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);
}
2) Конфигурация с помощью policies.json


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


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

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

Файл policies.json выглядит следующим образом:

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

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


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

Policy Name

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