Проблема python и poplib с получением писем

Рейтинг: 1Ответов: 1Опубликовано: 09.05.2011

Привет. Использую для чтения писем с почты на gmail.com либу poplib. Вот код:

import poplib  
import time  
from email.Parser import Parser  
parser = Parser()   
server = poplib.POP3_SSL("pop.gmail.com")  
server.set_debuglevel(1)    
print server.user("you@gmail.com")  
print server.pass_("your-pass")  
server.retr(server.stat()[0])[1]  
server.quit()

В результате каким-то образом после выполнения данного скрипта кол-во сообщений уменьшается, то есть я не могу перечитать данное сообщение повторно. Пожалуйста, подскажите, в чем проблема? Заранее спасибо.

Ответы

▲ 1

server.repr() - это не баг, это реализация POP-протокола. Ваши сообщения не уменьшаются - они просто загружаются, а на сервере удаляются. Это нормальное поведение клиента POP - "забрать" почту. А у вас в почтовых клиентах просто стоит галочка вроде "не удалять сообщения автоматически", что реализовано в библиотеке, по-видимому, как server.top().
Если вы хотите просто читать сообщения и хранить их на сервере, используйте IMAP. Он более приспособлен для таких действий. Тем более, что вы используете Gmail:)