НАЧАЛО >> Отправка писем от имени системы >> Входящая почта и mailbox profiles📄 Скачать в DOCX
Модуль I128FMail владеет почтовым транспортом, профилями входящих ящиков, нормализацией письма, threading metadata, idempotency input и ошибками транспорта. Доменные модули получают безопасный inbound envelope и сами решают, создавать новую запись, обновлять существующую или перевести обработку в диагностируемое состояние.
Системный контракт входящей почты хранится в modules/I128FMail/system/inbound_mail_contract.json. В нем описаны:
Функция I128FMail/GetInboundContractDefinitions читает этот JSON и возвращает нормализованные справочники и системные профили.
Mailbox profile содержит ключ, название, включенность, адресные правила, политику отправителей, parser profile, attachment policy, threading policy, duplicate detection profile, owner module handler, ссылку на секрет подключения и error policy. Нормализация выполняется функцией I128FMail/NormalizeMailboxProfile.
Секреты входящего ящика не должны храниться в открытом виде в профиле. Профиль хранит только secretRef; значение секрета принадлежит Security.
Функция I128FMail/NormalizeInboundEnvelope приводит письмо к безопасному envelope:
messageId;idempotencyKey;fingerprint;traceId;identityHint;Envelope не должен содержать открытых секретов, непроверенных локальных путей файлов или произвольных raw headers. Вложения передаются как staging/quarantine metadata; постоянное хранение принадлежит FT/TemporaryFiles и выполняется по политике owner-модуля.
Функция I128FMail/ExplainInboundDelivery проверяет envelope по mailbox profile и возвращает объяснимое решение: можно ли доставлять письмо owner-модулю, какая политика разрешила или заблокировала отправителя, что произошло с вложениями, какой handler должен получить данные и какой idempotencyKey использовать.
В этом срезе функция не вызывает Tasks, EventBus, Queue, FT, Security или HealthCheck напрямую. Она только формирует контрактное решение, которое будущий runtime сможет использовать для публикации события, постановки фоновой обработки и передачи envelope handler-у.
Функция I128FMail/HealthCheckInboundDefinition проверяет системный контракт: доступность JSON, уникальность ключей профилей, допустимость политик, наличие owner module handler, secretRef, eventType, queueHandler и безопасных настроек вложений. Эта функция является локальным provider-контрактом для будущей интеграции с общесистемным HealthCheck.
Проверка I128FMail.module.inbound-contract относится к уровню safe-read. Она читает системный JSON, нормализует mailbox profile, строит envelope тестового письма, проверяет fingerprint, разрешенную доставку, заблокированного отправителя, карантин вложения, локальную диагностику и отсутствие прямой зависимости inbound-контракта от доменных runtime-модулей.