У меня есть объект.
fp = open(self.currentEmailPath, "rb")
p = email.Parser.Parser()
self._currentEmailParsedInstance= p.parse(fp)
fp.close()
self.currentEmailParsedInstance, из этого объекта я хочу получить тело письма, только текст без HTML ....
Как мне это сделать?
как то так?
newmsg=self._currentEmailParsedInstance.get_payload()
body=newmsg[0].get_content....?
затем удалите HTML из тела.
только что это .... метод для возврата фактического текста ... может быть, я неправильно понимаю вас
msg=self._currentEmailParsedInstance.get_payload()
print type(msg)
output = type 'list'
электронная почта
Return-Path:
Получено: от xx.xx.net (пример) от mxx3.xx.net (xxx)
идентификатор 485EF65F08EDX5E12 для xxx@xx.com; Четверг, 23 октября 2008 г. 06:07:51 + 0200
Получено: от xxxxx2 (ccc) через example.net (ccc) (аутентифицировано как xxxx.xxx@example.com)
id 48798D4001146189 для example.example@example-example.com; Четверг, 23 октября 2008 г. 06:07:51 + 0200
От: «пример»
Кому:
Тема: FW: пример
Дата: четверг, 23 октября 2008 г. 12:07:45 + 0800
Организация: пример
Идентификатор сообщения: <001601c934c4 $ xxxx30 $ a9ff460a @ xxx>
MIME-версия: 1.0
Тип контента: составной / смешанный;
граница = "---- = _ NextPart_000_0017_01C93507.F6F64E30"
X-Mailer: Microsoft Office Outlook 11
X-MimeOLE: Произведено Microsoft MimeOLE V6.00.2900.3138
Индекс потока: Ack0wLaumqgZo1oXSBuIpUCEg / wfOAABAFEA
Это сообщение из нескольких частей в формате MIME.
------ = _ NextPart_000_0017_01C93507.F6F64E30
Тип контента: составной / альтернативный;
border = "---- = _ NextPart_001_0018_01C93507.F6F64E30"
------ = _ NextPart_001_0018_01C93507.F6F64E30
Тип содержимого: текст / обычный;
кодировка = "US-ASCII"
Content-Transfer-Encoding: 7 бит
От: example.example [mailto: example@example.com]
Отправлено: четверг, 23 октября 2008 г., 11:37
To: xxxx@example.com
Тема: S / I, например (B / L
№4357-0120-810.044)
Пожалуйста, прикрепите файл example.doc),
Спасибо.
B.rgds,
ххх ххх
------ = _ NextPart_001_0018_01C93507.F6F64E30
Тип контента: текст / html;
кодировка = "US-ASCII"
Content-Transfer-Encoding: цитируемый для печати
xmlns: o = 3D "urn: schemas-microsoft-com: office: office" =
xmlns: w = 3D "urn: schemas-microsoft-com: office: word" =
xmlns: st1 = 3D "urn: schemas-microsoft-com: office: smarttags" =
xmlns = 3D "http://www.w3.org/TR/REC-html40">
HTML STUFF до
------ = _ NextPart_001_0018_01C93507.F6F64E30--
------ = _ NextPart_000_0017_01C93507.F6F64E30
Тип контента: приложение / msword;
Name = "xxxx.doc"
Content-Transfer-Encoding: base64
Контент-расположение: вложение;
filename = "xxxx.doc"
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7 / CQAGAAAAAAAAAAAAAAABAAAAYAAAAAAAAAAA
EAAAYgAAAAEAAAD + //// AAAAAF8AAAD //////////////////////////////////////////// /
////////////////////////////////////////////////// //////////////////////////
////////////////////////////////////////////////// //////////////////////////
////////////////////////////////////////////////// //////////////////////////
////////////////////////////////////////////////// //////////////////////////
////////////////////////////////////////////////// //////////////////////////
////////////////////////////////////////////////// //////////////////////////
////////////////////////////////////////////////// ///////////////////////// s
pcEAI2AJBAAA + FK / AAAAAAAAEAAAAAAABgAAnEIAAA4AYmpiaqEVoRUAAAAAAAAAAAAAAAAAAAAA
AAAECBYAMlAAAMN / AADDfwAAQQ4AAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD // w8AAAAA
AAAAAAD // w8AAAAAAAAAAAD // w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAAEYEAAAAAAAARgQAAEYE
AAAAAAAARgQAAAAAAABGBAAAAAAAAEYEAAAAAAAARgQAABQAAAAAAAAAAAAAAFoEAAAAAAAA4hsA
AAAAAADiGwAAAAAAAOIbAAA4AAAAGhwAAHwAAACWHAAARAAAAFoEAAAAAAAABzcAAEgBAADmHAAA
FgAAAPwcAAAAAAAA / BwAAAAAAAD8HAAAAAAAAPwcAAAAAAAA / BwAAAAAAAD8HAAAAAAAAPwcAAAA
AAAAMjYAAAIAAAA0NgAAAAAAADQ2AAAAAAAANDYAAAAAAAA0NgAAAAAAADQ2AAAAAAAANDYAACQAAABPOAAAaAIAALc6AACOAAAAWDYAAGkAAAAAAAAAAAAAAAAAAAAAAAAARgQAAAAAAABHLAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAD8HAAAAAAAAPwcAAAAAAAARywAAAAAAABHLAAAAAAAAFg2AAAAAAAA
------ = _ NextPart_000_0017_01C93507.F6F64E30--
Я просто хочу получить:
От: xxxx.xxxx [mailto: xxxx@example.com]
Отправлено: четверг, 23 октября 2008 г., 11:37
To: xxxx@example.com
Тема: S / I для xxxxx (B / L
№4357-0120-810.044)
Просьба найти прикрепленный файл xxxx.doc),
Спасибо.
B.rgds,
ххх ххх
не уверен, что почта искажена!
Кажется, если вы получаете HTML-страницу, вы должны сделать это:
parts=self._currentEmailParsedInstance.get_payload()
print parts[0].get_content_type()
..._multipart/alternative_
textParts=parts[0].get_payload()
print textParts[0].get_content_type()
..._text/plain_
body=textParts[0].get_payload()
print body
...get the text without a problem!!
Большое спасибо, Винко.
Так что это похоже на работу с XML, рекурсивный по своей природе.