Проект

Общее

Профиль

Действия

Приложение 8. Интеграция почтового сервера Tegu с веб-интерфейсом Р7-Офис

В качестве веб-интерфейса к почтовому серверу Tegu может быть использован популярный офисный пакет Р7-Офис
В настоящий момент возможен только один тип интеграции - с использованием общего для обоих серверов сервера каталогов.
Рассмотрим следующую схему.

Мы видим, что запросы по протоколам IMAP/SMTP обрабатывает непосредственно Tegu. Если же пользователь открывает браузер, то обращается на страницы веб-приложения Р7-Офис (которое в свою очередь является почтовым клиентом Tegu). При этом и Р7-Офис, и Tegu аутентифицируют своих пользователей с помощью общего сервера каталогов.

Важно понимать следующую особенность Р7-Офиса:
  • Р7-Офис синхронизирует данные сервера каталогов с собственной базой данных MySQL.
  • В логике Р7-Офис каждый пользователь может подключить более одного почтового аккаунта.

Таким образом, мы должны предварительно настроить Р7-Офис таким образом, чтобы он бесшовно подключался к Tegu и запрашивал почту с нужными параметрами.
Данная настройка выполняется с помощью внесения данных непосредственно в СУБД MySQL.

Официальная документация Р7-Офис

В официальной документации читаем следующее:

Для настройки необходимо использовать данные для подключения к БД MySQL,
пароль для пользователя root содержится в файле web.connections.config, который расположен в директории:
Для установки на Windows: C:\Program Files (x86)\R7-OFFICE\CommunityServer\WebStudio\
Для установки на Linux: /var/www/r7-office/WebStudio/

Для подключения к консоли БД MySQL выполните команду:

mysql -h 127.0.0.1 -uroot -p

1. Для создания корпоративного профиля почтовой службы выполните команду:

USE r7-office;
INSERT INTO mail_mailbox_provider (name,display_name,display_short_name) VALUES (‘corpname.dom’, ‘Corporate Mail Service’,‘CorpMail’);

где:

corpname.dom - основной почтовый домен организации,
Corporate Mail Service - полное наименование почтовой службы,
CorpMail - сокращенное наименование почтовой службы

После этого выполните команду и запишите идентификатор (id) созданного профиля:

SELECT id FROM mail_mailbox_provider WHERE name = ‘corpname.dom’;

2. Для создания основного почтового домена выполните команду:

INSERT INTO mail_mailbox_domain (id_provider, name) VALUES (NNN, ‘corpname.dom’);

где:
NNN - идентификатор корпоративного профиля из шага №1
corpname.dom - основной почтовый домен организации,

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

3. Для добавления протоколов связи с почтовыми серверами выполните команду:

INSERT INTO mail_mailbox_server (id_provider,type,hostname,port,socket_type,username,authentication) VALUES (NNN,‘imap’,‘imap.corpname.dom’,143,‘STARTTLS’,‘%EMAILADDRESS%’, ‘password-encrypted’);

где:
NNN - идентификатор корпоративного профиля из шага №1,
imap - протокол подключения (возможные значения: imap/pop3/smtp),
imap.corpname.dom - FQDN имя почтового сервера для подключения,
143 - порт для подключения,
STARTTLS - протокол шифрования (возможные значения: SSL, STARTTLS, plain),
EMAILADDRESS - логин для авторизации на сервере (примеры значений: EMAILADDRESS, EMAILLOCALPART, EMAILLOCALPART@%EMAILHOSTNAME%, EMAILLOCALPART.%EMAILDOMAIN%, recent:%EMAILADDRESS%)
password-encrypted - способ передачи пароля для аутентификации (возможные значения: password-cleartext, password-encrypted, none)

Команду нужно повторить для протоколов POP3 и SMTP. Допускается внесение нескольких записей для разных портов и типов аутентификации. Протоколы IMAP следует добавлять первыми.

Выполняем это на практике

cat /var/www/r7-office/WebStudio/web.connections.config

Конфиг выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
    <clear />
    <add name="default" connectionString="Server=127.0.0.1;
    Database=r7-office;
    User ID=root;
    Password=ih7AXatUN5q8Fig9;
    Pooling=true;
    Character Set=utf8;
    AutoEnlist=false;
    SSL Mode=none;
    AllowPublicKeyRetrieval=true; 
    Connection Timeout=30;
    Maximum Pool Size=300;
    "providerName="MySql.Data.MySqlClient"/>
</connectionStrings>

Находим пароль для подключения к базе данных:

ih7AXatUN5q8Fig9

Для подключения к консоли БД MySQL выполните команду:

mysql -h 127.0.0.1 -uroot -p

Используем команды поочередно:

USE r7-office;
INSERT INTO mail_mailbox_provider (name,display_name,display_short_name) VALUES ('tegu.online','mbk-lab','mbk');

получаем

Query OK, 1 row affected (0.00 sec)

Выполняем

SELECT id FROM mail_mailbox_provider WHERE name = 'tegu.online';

получаем

+-----+
| id  |
+-----+
| 222 |
+-----+
1 row in set (0.00 sec)

Выполняем

INSERT INTO mail_mailbox_domain (id_provider, name) VALUES (222, 'tegu.online');

получаем

Query OK, 1 row affected (0.04 sec)

Выполняем

INSERT INTO mail_mailbox_server (id_provider,type,hostname,port,socket_type,username,authentication) VALUES (222,'imap','mail.tegu.online',993,'SSL','%EMAILADDRESS%', 'password-cleartext');

получаем

Query OK, 1 row affected (0.05 sec)

Выполняем

INSERT INTO mail_mailbox_server (id_provider,type,hostname,port,socket_type,username,authentication) VALUES (222,'smtp','mail.tegu.online',465,'SSL','%EMAILADDRESS%', 'password-cleartext');

получаем

Query OK, 1 row affected (0.05 sec)

Первичный пользовательский вход в веб-интерфейс

При первичном входе пользователь увидит следующий мини-сетап, в котором (ничего не меняя) необходимо нажать кнопку "Сохранить".
Тем самым в вашу офисную учетку добавится почтовая учетная запись.

Настройка завершена.
Приятного использования.

Обновлено Кальметов Игорь 17 дня назад · 12 изменени(я, ий)