сообщения выкладываются в произвольном дереве частей, причем родительские элементы имеют тип multipart/* или message/rfc822, а дети - из других типов. FETCH BODY[...]
позволяет произвольно извлекать любую из этих частей.
К сожалению, стандартного макета сообщений нет. Вы можете получить элемент BODYSTRUCTURE, чтобы получить MIME-раскладку сообщения, но очень сложно разобрать глазом.
Это, как говорится, есть несколько общих макетов сообщений, которые доставят вам большую часть пути.
Самый простой - это сообщение только с одним телом, либо text/html, либо text/plain. Просто заберите BODY[TEXT]
.
Следующий многоформатный, с текстом/html и текстом/равниной. Его структура MIME обычно выглядит следующим образом:
+ multipart/alternative [TEXT]
|- text/plain [1]
\- text/html [2]
В этом случае, если вы хотите, чтобы принести BODY[2]
.
Если сообщение однокорпусные, с вложениями, он будет выглядеть примерно так:
+ multipart/mixed or multipart/related [TEXT]
|- text/html or text/plain [1]
|- image/jpg [2]
| ...
\- image/gif
В этом случае вы хотите BODY[1]
.
Последний из них: многоформатный корпус с вложениями. Это будет иметь тенденцию выглядеть примерно так:
+ multipart/mixed or multipart/related [TEXT]
|-+ multipart/alternative [1]
| |- text/plain [1.1]
| \- text/html [1.2]
|- image/jpeg [2]
|- image/gif [3]
|...
\- image/png
В этом случае, вы, вероятно, хотите BODY[1.2]
. Ваше примерное сообщение относится к этому типу.
Кроме того, тела могут быть закодированы в кодировке Quoted-Printable или Base64. К сожалению, базовый IMAP не предоставляет никакого способа для сервера декодировать это для вас. Quoted-Printable может быть в основном прочитан, если сообщение является ascii, но будет иметь много
=
побегов по всему телу. Если это base64, вы не сможете расшифровать его на глаз.
BINARY IMAP extension может помочь в этом, но это не широко развернуто.
Пожалуйста, обновите вопрос с помощью примера записи из фактического журнала и фактического вывода, который вы ожидаете – Inian
Хорошо, я привел пример – matiux
У вас все ваши сообщения похожи на этот пример? – Max