email/Messages
Коллекция email-писем, привязанных к email-аккаунтам и каталогам (для входящих писем).
Коллекция создается и используется микросервисом 'email'.
Имеет тип history
, партиционируется и адресуется с использованием дат.
Сущности для полученных писем создаются автоматически во время синхронизации IMAP-каталога с IMAP-сервером. Сущности отправленных писем создаются через API или другими сервисами системы.
Письма имеют состояния, влияющие на процесс обслуживания. Так, для отправки письма состояние 'messageState' должно быть выставлено в 'sending', а после отправки автоматически выставляется в 'sent'. Дополнительно, для отправки поле 'messageDirection' должно содержать значение 'out'.
ВНИМАНИЕ! Все вложения, HTML содержимое, а также нативное неразобранное содержание письма сохраняются в виде вложений, хранятся в файловой системе. Это вносит ограничения на файловую систему, показатель inodes которой может быть быстро исчерпан, если изначально лимитирован в месте хранения вложений.
Тип хранилища: history
.
Поле | Описание |
---|---|
|
Идентификатор. |
|
Идентификатор родительского email-аккаунта. |
|
Идентификатор каталога. |
|
Дата-время письма. Используется в том числе при определении партиции хранения в БД. Для отправляемых писем заполняется сервисом-инициатором перед отправкой, используется при формировании очереди. Для полученных писем заполняется автоматически, преимущественно оригинальное время поступления письма на сервер (заголовки Date или Delivery-Date). |
|
Направление письма:
|
|
Тип письма:
|
|
Состояние письма:
|
|
Заполняется содержанием ошибки, если полученное письмо имеет состояние error, либо ошибка возникла при отправке. |
|
Оригинальный идентификатор IMAP множества (в полученных письмах). Используется для обнаружения следующего неполученного письма. |
|
Оригинальный инкрементальный идентификатор письма в рамках своего IMAP uidValidity (в полученных письмах). Используется для обнаружения следующего неполученного письма. |
|
Email-адрес отправителя письма (в полученных письмах) |
|
Список email-адресов получателей письма. Автоматически заполняется для полученных писем. Используется при отправке писем. |
|
Список email-адресов других получателей письма через копию (для отправляемых писем). |
|
Список email-адресов скрытых получателей письма (для отправляемых писем). |
|
Email-адрес для автоматического ответа. Для отправляемых писем в случае, если значение пустое, берется значение из опций аккаунта (поле 'options.replyTo'), а иначе подставляется значение адреса назначения ('to'). |
|
Email-адрес для подстановки в заголовок In-Reply-To отправляемых писем. |
|
Оригинальный идентификатор письма (для полученных писем). |
|
Оригинальное время письма (для полученных писем). Извлекается из заголовков Date или Delivery-Date. |
|
Дата-время фактического получения входящего письма с почтового сервера и создания сущности. Заполняется автоматически для полученных писем. |
|
|
|
Тема письма. |
|
Тело сообщения, если оно не текстовое и не html (для полученных писем). |
|
Текст сообщения, при наличии в содержимом блока текстовых данных (text/plain непосредственно или в multipart/alternative). Для отправляемых писем заполняется инициатором перед отправкой. Для полученных писем автоматически заполняется после успешного парсинга письма. |
|
HTML содержимое письма (вложение), при наличии в содержимом блока html данных (text/html непосредственно или в multipart/alternative). Для отправляемых писем заполняется инициатором перед отправкой. Для полученных писем автоматически заполняется после успешного парсинга письма. Файл размещается на диске, в сущности сохраняется мета-информация. |
|
Размер сообщения (для полученных писем) |
|
Список вложений, в том числе инлайнов (multipart/mixed). Для отправляемых писем заполняется инициатором перед отправкой. Для полученных писем автоматически заполняется после успешного парсинга письма. Вложения размещаются на диске, в сущности сохраняется мета-информация. |
|
Объект - список инлайнов (ресурсов со ссылками из тела письма). При отправке письма с помощью объекта может задаваться специфичный набор параметров. В частности, можно установить для конкретного вложения значение заголовка 'Content-Type'. Для вложений, требующих указание специфических параметров, в объекте должен содержаться ключ - имя файла в коллекции 'attachments', и значение - объект с набором поддерживаемых свойств: 'content_type'. Например: { "file.ics": {"content_type": "text/calendar; charset=utf-8; method=REQUEST; name=file.ics"} } |
|
Объект - список инлайнов (ресурсов со ссылками из тела письма). Размещаются в одной части 'multipart/related' с HTML-телом письма. Для отправки инлайнов следует задавать объект, где ключами выступают Content-Id, а значениями - имена файлов в коллекции attachments. Например: { "15623784-1562-3784-5906-156237845906": "myfile.png" } |
|
Исходное нераспарсенное входящее письмо (для полученных писем). Файл размещается на диске, в сущности сохраняется мета-информация. |