---
title: "Получить почтовый ящик"
method: GET
path: "/api/v1/mail/accounts/{id}"
tags: ["Mail accounts"]
---

# Получить почтовый ящик

`GET /api/v1/mail/accounts/{id}`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/mail/accounts/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Недоступный и отсутствующий ящик одинаково возвращают 404: иначе перебором идентификаторов составляется карта чужих ящиков кабинета.

## Response `200`

Ящик без учётных данных

- MailAccount: Почтовый ящик кабинета. Пароль подключения не сериализуется никогда: наружу уходит только признак has_credentials.
  - `id` string, uuid, required
  - `owner_user_id` integer, required: Сотрудник, которому принадлежит ящик
  - `shared` boolean, required: Общий ящик виден каждому сотруднику кабинета с правом mail:read (или участникам бизнеса business_id); личный — владельцу и поимённо названным в shared_with. Право видеть все записи чтения чужого ящика не даёт
  - `business_id` string, uuid, required
  - `shared_with` integer[], required: Сотрудники, которым ящик открыт поимённо, поверх правила access_scope. Всегда список: пустой — поимённо никому
  - `access_scope` 'personal' | 'users' | 'cabinet' | 'business', required: Кому виден ящик кроме владельца: personal — никому; users — только сотрудникам из shared_with; cabinet — каждому сотруднику кабинета с mail:read; business — сотрудникам с mail:read, чья область касается business_id
  - `email` string, required
  - `display_name` string, required
  - `notification_mode` 'all' | 'important' | 'off', required: Уведомления владельца ящика о новой почте: все письма, только важные отправители или выключено
  - `imap_host` string, required
  - `imap_port` integer, required
  - `imap_encryption` 'tls' | 'starttls', required: Режим шифрования канала. Открытого соединения без TLS в перечне нет намеренно: пароль от почты в открытом канале не передаётся.
  - `smtp_host` string, required
  - `smtp_port` integer, required
  - `smtp_encryption` 'tls' | 'starttls', required: Режим шифрования канала. Открытого соединения без TLS в перечне нет намеренно: пароль от почты в открытом канале не передаётся.
  - `username` string, required: Логин подключения; по умолчанию равен адресу
  - `has_credentials` boolean, required: Пароль приложения сохранён. Самого пароля не отдаёт ни одна операция
  - `status` 'active' | 'disabled' | 'error', required: Состояние ящика. disabled ставит человек, error — воркер синхронизации; разделение нужно, чтобы починка пароля не воскрешала ящик, который владелец выключил сознательно.
  - `sync_status` 'never' | 'ok' | 'running' | 'failed', required: Состояние последней синхронизации ящика
  - `sync_since_days` integer, required: Глубина первичного импорта в днях; ноль означает весь ящик
  - `signature` string, required: Подпись, подставляемая в исходящие письма
  - `last_sync_at` string, date-time, nullable, required
  - `last_error` string, required: Последняя ошибка подключения для человека
  - `last_error_code` string, required: Машинный код последней ошибки подключения, например mail.account.credentials_rejected; пусто, когда ошибки нет
  - `unread_count` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/a99574d597cc?raw)
