2015-06-20 7 views
0

Я пытаюсь сделать код питона, чтобы открыть почтовый ящик и читать их ..Открытие почты в питоне

Все, что я могу сделать сейчас, чтобы сделать подключение к почтовому ящику (в Gmail или Hotmail для пример) и получение моей почты, но у меня есть что-то вроде этого:

Я думаю, что это заголовок почты.

Delivered-To: ************@gmail.comReceived: by 10.70.102.67 with SMTP id fm3csp1378385pdb;  Mon, 27 Apr 2015 09:20:55 -0700 (PDT 
)X-Received: by 10.68.217.106 with SMTP id ox10mr23174020pbc.21.1430151654873;  Mon, 27 Apr 2015 09:20:54 -0700 (PDT)Return-Path: <b 
05524c6220********[email protected]>Received: from spruce-goose-ab.twitter.com (spruce-goose-ab.twitter.com. [199.59.150 
.71])  by mx.google.com with ESMTPS id 6si30521501pds.59.2015.04.27.09.20.54  for <**********@gmail.com> 

Но хорошо, вот моя проблема, эта вещь, которую я получил, на самом деле не то, что я хочу. Я хочу знать, есть ли способ увидеть это ясно, как настоящий почтовый ящик, но в моем терминале.

Вот код, кстати:

import getpass, poplib 

user = '**********@gmail.com' 
Mailbox = poplib.POP3_SSL('pop.googlemail.com', '995') 
Mailbox.user(user) 
Mailbox.pass_('*********') 
numMessages = 1 #len(Mailbox.list()[1]) #Only one mail     
file = open("mail.html", "w") 
for i in range(numMessages): 
    for msg in Mailbox.retr(i+1)[1]: 
     file.write(msg) 
file.close 
Mailbox.quit() 
+0

Говорит https://docs.python.org/2/library/mailbox.html#mailbox-objects «Класс почтового ящика определяет интерфейс и не предназначен для создания экземпляра. Вместо этого подклассы, специфичные для формата, должны наследоваться от почтового ящика, а ваш код должен создавать экземпляр определенного подкласса ». – msw

+0

В соответствии с кодом OP 'Mailbox' не создается напрямую, он создает его с помощью -' Mailbox = poplib.POP3_SSL ('pop.googlemail.com', '995') ' –

ответ

2

Результат RETR() является кортеж (ответ, [ 'строка', ...], октета) из , которые вы оставляете список линий. В примере, приведенном в конце python doc они показывают

for j in M.retr(i+1)[1]: 
    print j 

который вы превращали в

for msg in Mailbox.retr(i+1)[1]: 
    file.write(msg) 

Разница заключается в том, что печать добавляет символ новой строки, и ваша запись не делает. Просто добавьте «\ n» после каждой записи().

Однако, я согласен, что вы, кажется, только иметь заголовки ...

Смежные вопросы