Входящая почта и mailbox profiles


НАЧАЛО >> Отправка писем от имени системы >> Входящая почта и mailbox profiles📄 Скачать в DOCX


Модуль I128FMail владеет почтовым транспортом, профилями входящих ящиков, нормализацией письма, threading metadata, idempotency input и ошибками транспорта. Доменные модули получают безопасный inbound envelope и сами решают, создавать новую запись, обновлять существующую или перевести обработку в диагностируемое состояние.

1. Системный контракт

Системный контракт входящей почты хранится в modules/I128FMail/system/inbound_mail_contract.json. В нем описаны:

Функция I128FMail/GetInboundContractDefinitions читает этот JSON и возвращает нормализованные справочники и системные профили.

2. Mailbox profile

Mailbox profile содержит ключ, название, включенность, адресные правила, политику отправителей, parser profile, attachment policy, threading policy, duplicate detection profile, owner module handler, ссылку на секрет подключения и error policy. Нормализация выполняется функцией I128FMail/NormalizeMailboxProfile.

Секреты входящего ящика не должны храниться в открытом виде в профиле. Профиль хранит только secretRef; значение секрета принадлежит Security.

3. Inbound envelope

Функция I128FMail/NormalizeInboundEnvelope приводит письмо к безопасному envelope:

Envelope не должен содержать открытых секретов, непроверенных локальных путей файлов или произвольных raw headers. Вложения передаются как staging/quarantine metadata; постоянное хранение принадлежит FT/TemporaryFiles и выполняется по политике owner-модуля.

4. Dry-run доставки

Функция I128FMail/ExplainInboundDelivery проверяет envelope по mailbox profile и возвращает объяснимое решение: можно ли доставлять письмо owner-модулю, какая политика разрешила или заблокировала отправителя, что произошло с вложениями, какой handler должен получить данные и какой idempotencyKey использовать.

В этом срезе функция не вызывает Tasks, EventBus, Queue, FT, Security или HealthCheck напрямую. Она только формирует контрактное решение, которое будущий runtime сможет использовать для публикации события, постановки фоновой обработки и передачи envelope handler-у.

5. Диагностика

Функция I128FMail/HealthCheckInboundDefinition проверяет системный контракт: доступность JSON, уникальность ключей профилей, допустимость политик, наличие owner module handler, secretRef, eventType, queueHandler и безопасных настроек вложений. Эта функция является локальным provider-контрактом для будущей интеграции с общесистемным HealthCheck.

6. TestA

Проверка I128FMail.module.inbound-contract относится к уровню safe-read. Она читает системный JSON, нормализует mailbox profile, строит envelope тестового письма, проверяет fingerprint, разрешенную доставку, заблокированного отправителя, карантин вложения, локальную диагностику и отсутствие прямой зависимости inbound-контракта от доменных runtime-модулей.