Подключение почты Gmail и Outlook на своём сервере
Для кого: IT-администратор (однократная регистрация) и администраторы рабочей области · Время: около 20 минут
Обзор
Это необязательно. Приглашения и уведомления уже отправляются через почтовый сервер компании. Подключение Gmail или Outlook позволяет каждому сотруднику читать и отправлять свою почту прямо в Digital Workspace и синхронизировать календарь.
На своём сервере кнопки Продолжить с Gmail и Продолжить с Outlook работают только после того, как IT-администратор зарегистрирует приложение в Google или Microsoft для вашего сервера. До этого при нажатии на одну из них показывается Вход через Gmail ещё не включён на этом сервере (или Outlook), а сотрудники могут пользоваться простым встроенным почтовым ящиком.
Перед началом
- HTTPS включён с именем сервера (см. статью «Включение HTTPS»). Google и Microsoft принимают только адреса возврата https://. Google также требует настоящее доменное имя, а не IP-адрес.
- Веб-адрес в Настройках рабочей области › Почтовый сервер — это HTTPS-адрес.
- Модуль Почта включён в разделе Настройки рабочей области › Модули.
- Сервер имеет доступ в интернет к Google (accounts.google.com, googleapis.com) или Microsoft (login.microsoftonline.com, graph.microsoft.com). Офлайн-сервер не может подключить эти почтовые ящики.
Ваш адрес возврата (redirect URI)
Этот адрес нужен для обеих регистраций. Замените первую часть своим веб-адресом:
https://workspace.company.uz/api/email/oauth/callback
Outlook / Microsoft 365 (IT-администратор)
- В Microsoft Entra admin center откройте App registrations → New registration.
- Назовите приложение Digital Workspace. В разделе Supported account types оставьте Accounts in this organizational directory only. В разделе Redirect URI выберите Web и вставьте свой адрес возврата. Нажмите Register.
- Скопируйте Application (client) ID и Directory (tenant) ID.
- Откройте Certificates & secrets → New client secret и скопируйте его Value.
- Откройте API permissions → Add a permission → Microsoft Graph → Delegated и добавьте openid, email, profile, offline_access, User.Read, Mail.Read, Mail.Send и Calendars.ReadWrite. Нажмите Grant admin consent.
Gmail / Google Workspace (IT-администратор)
- В Google Cloud console создайте проект и включите Gmail API (и Google Calendar API для календарей).
- Настройте OAuth consent screen. Для корпоративного Google Workspace выберите Internal, чтобы приложением могли пользоваться только ваши коллеги.
- Откройте Credentials → Create credentials → OAuth client ID, тип Web application, и добавьте свой адрес возврата в Authorized redirect URIs.
- Скопируйте Client ID и Client secret.
Добавьте ключи на сервер (IT-администратор)
- На сервере откройте /opt/digital-workspace/.env. Найдите нужные строки, удалите # в начале каждой и впишите значение после знака =:
MICROSOFT_CLIENT_ID=,MICROSOFT_CLIENT_SECRET=иMICROSOFT_TENANT=(ваш Directory (tenant) ID)GOOGLE_CLIENT_ID=иGOOGLE_CLIENT_SECRET=
- Примените изменения:
cd /opt/digital-workspace && sudo docker compose up -d app. - Храните секреты клиента в тайне. Никогда не вставляйте их в чат или письмо. Секреты Microsoft имеют срок действия: запишите дату и замените секрет до её наступления.
Подключите почтовый ящик
- Каждый сотрудник открывает Почта и нажимает Продолжить с Gmail или Продолжить с Outlook.
- Он входит на странице Google или Microsoft, разрешает доступ и возвращается в Digital Workspace.
Дальше всё работает, как описано в статье «Настройка почты». Приглашения по-прежнему отправляются через почтовый сервер компании.
Устранение неполадок
| Сообщение | Решение |
|---|---|
| Вход через Gmail (или Outlook) ещё не включён на этом сервере | В файле .env нет ключей, строки всё ещё начинаются с #, или приложение не было перезапущено командой docker compose up -d app. |
| Google или Microsoft сообщает, что redirect URI не совпадает | Зарегистрированный адрес возврата должен точно совпадать с веб-адресом, включая https:// и без косой черты в конце. |
| Рабочий аккаунт Outlook показывает «Need admin approval» (требуется одобрение администратора) | Предоставьте согласие администратора для приложения в Entra (API permissions → Grant admin consent). |
| Корпоративный Gmail сообщает «blocked by your admin» (заблокировано администратором) | Администратор Google Workspace отмечает приложение как доверенное в Admin console (Security › API controls). |
Эти статьи есть и в базе знаний на вашем сервере после обновления.