Много бизнес‑информации хранится в электронных письмах, а нужная часть обычно находится во вложении: коммерческое предложение, подписанное дополнение, обновлённый график. GroupDocs.Search.Mcp, работающий локально в Docker, открывает файлы электронной почты и архивы (PST, OST, MSG, EML) и индексирует каждое сообщение и каждое вложение, так что Claude Desktop, Cursor или Copilot могут искать по архиву на месте и точно указывать, из какого вложения пришло совпадение:

Индексировать папку с почтой. Какое сообщение упоминает повышение цены и что именно в нём сказано?

Пошаговая версия с настройкой и устранением неполадок находится в документации: Как искать по архивам электронной почты и вложениям с помощью AI‑агента локально.

Почему электронная почта сложна для агента?

Потому что архив — это контейнер контейнеров. PST содержит папки, папки содержат сообщения, сообщения содержат вложения, а вложения сами по себе являются файлами Word, PDF и электронными таблицами. Агент с файловыми инструментами видит один большой бинарный файл. Экспорт архива в отдельные файлы сначала работает, но он медленный, дублирует конфиденциальные данные на диск и его нужно выполнять заново, когда архив меняется. И модель вообще не может читать PST.

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

Как выглядит совпадение во вложении?

Ниже показан ответ сервера в нашем тесте с тремя сообщениями EML. Фраза «price increase» встречается только в Word‑коммерческом предложении, вложенном к одному из сообщений; тело сообщения просто гласит «please find the updated quotation attached».

-> add_to_index {"documentsPath":"mail","indexName":"mail"}
<- Indexed 'mail' into index 'mail': 3 document(s) added, 3 in the index.

-> search {"query":"\"price increase\"","indexName":"mail"}
<- { "documentsFound": 1, "documents": [
     { "filePath": "mail/2026-09-18-re-q3-pricing.eml",
       "innerPath": "quotation-Q-2026-118.docx",
       "occurrences": 1 } ] }

-> get_text_fragments {"query":"\"price increase\"","indexName":"mail"}
<- === mail/2026-09-18-re-q3-pricing.eml → quotation-Q-2026-118.docx
   (1 occurrence(s)) ===
     …Due to raw material costs we announce a price increase
   of 6 percent from 2026-11-01.…

filePath — это сообщение; innerPath — вложение. Агент может ответить: «сообщение Re: Q3 pricing от Contoso, во вложенном документе quotation‑Q‑2026‑118: повышение цены на 6 % с 1 ноября», и каждая часть этого предложения прослеживается.

mail/2026-09-18-re-q3-pricing.eml          <- filePath
  |- body: "please find the updated quotation attached"
  '- attachment: quotation-Q-2026-118.docx  <- innerPath
        "...we announce a price increase of 6 percent..."

Вопросы, которые работают с почтой

Обычный язык запросов применяется, а некоторые шаблоны особенно полезны для корреспонденции. Все они проверялись на одной и той же тестовой почтовой коробке:

  • «Какое сообщение от Fabrikam упоминает задержку поставки?»: fabrikam AND delay. Адреса отправителей индексируются вместе с сообщением, поэтому contoso также нашёл счёт‑фактуру, в тексте которой компания не упоминается.
  • «Найдите каждое письмо, в котором упоминается заказ 77812»: 77812. Целые числа рассматриваются как слова.
  • «Какие счета‑фактуры подлежат оплате в октябре?»: invoice AND content: daterange(2026-10-01 ~~ 2026-10-31). Это совпадает с датами, написанными в тексте сообщения, например «due on 2026-10-22». Префикс content: важен: без него диапазон дат также совпадает с датами, которые движок записывает для каждого файла.

Почему локальность важнее для почты, чем для чего‑либо другого

Электронная почта — это место, где находятся конфиденциальные материалы: персональные данные, переговоры, HR‑переписка, юридические консультации. Поисковые инструменты, требующие загрузки или синхронизации почтового ящика в сервис, неприемлемы для многих команд. Здесь архив монтируется только для чтения в контейнер на машине, индексируется там и ищется там. Единственный текст, который покидает контейнер, — это цитата, вставленная агентом в ответ, а при локально развернутой модели даже её нет.

Для более строгой настройки смонтируйте архив только для чтения и дайте индексу собственный том:

docker run --rm -i \
  -v /srv/mail:/data:ro \
  -v /srv/mail-index:/index -e GROUPDOCS_MCP_INDEX_PATH=/index \
  ghcr.io/groupdocs-search/search-net-mcp:latest

Ограничение большого архива

Архив из десятков тысяч сообщений индексируется без проблем при наличии лицензии, но стоит подходить к этому осознанно. Индексируйте по папкам или по годам как отдельные пути (mail/2025, mail/2026), чтобы год можно было удалить или пере‑создать отдельно, поскольку движок удаляет целые индексированные пути, а не отдельные файлы. Храните почту в собственном индексе, отдельно от контрактов или отчётов, чтобы вопрос о корреспонденции не просматривал всё остальное. И когда архив растёт, update_index подхватывает новые сообщения без повторного чтения старых.

Честные ограничения

  • В режиме оценки индекс содержит не более 100 документов, а поиск возвращает не более 10, и каждое сообщение и вложение считается, поэтому реальный архив требует лицензии. Сначала вызовите get_license_status.
  • Большой PST требует времени для индексации: каждое сообщение и вложение открываются. Индексируйте один раз, затем используйте update_index.
  • Сканированные вложения без текстового слоя индексируются только по их файловым свойствам; OCR не предусмотрен.
  • Только Docker; в Linux добавьте --user "$(id -u):$(id -g)", если не используете настройку только для чтения, описанную выше.

FAQ

Можно ли искать по PST‑файлу с помощью ИИ без Outlook?
Да. Движок читает PST, OST, MSG и EML напрямую; Outlook не задействован, и ничего не экспортируется.

Ищет ли он внутри вложений писем?
Да. Вложения индексируются как элементы их сообщения, и совпадение внутри вложения возвращается с указанием innerPath, содержащего имя вложения.

Мой почтовый ящик где‑то загружается?
Нет. Он читается внутри локального контейнера; только отрывки, которые агент цитирует, попадают к вашему поставщику модели.

Углубиться