Возвращает ли imap.fetch (uid, 'RFC822') [0] .attr ['RFC822'] все сообщение, включая вложения? - PullRequest
2 голосов
/ 21 октября 2010

Интересно, есть ли способ, которым я могу избежать загрузки приложений?

Ответы [ 3 ]

1 голос
/ 21 октября 2010

Да, он возвращает весь источник электронной почты. Вложения закодированы как части электронной почты.

Вы можете использовать библиотеку Ruby Mail для извлечения всех вложений.

0 голосов
/ 21 октября 2010

Если все, что вы хотите сделать, это загрузить тело (я) электронной почты, то нет чистого способа сделать это (по крайней мере, тот, который я обнаружил).

Что мне нужно было сделать, так это сначала загрузить заголовки и структуры тела. После того, как у меня были заголовки, я мог определить, какой это тип электронной почты (многокомпонентная, альтернативная или просто электронная почта).

После того, как я узнал структуру, я мог загрузить текстовую часть или HTML-часть тела в виде раздела тела.

Это помогает?
--Dave

0 голосов
/ 21 октября 2010

Я не знаю о ruby, но это можно сделать только при получении заголовка электронной почты.
Я получаю заголовок электронной почты в Python, как показано ниже:

    resp, data = obj.uid('FETCH' , ','.join(map(str,uid_lst)),'(RFC822.HEADER RFC822.SIZE)')

, где uid_lst - это список uidsсообщений электронной почты, которые вы хотите получить.

Примечание. В сообщении электронной почты со значением поля заголовка Content-Type = 'Multipart-Mixed' есть вложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...