Выбирайте письма только из почтового ящика через poplib - PullRequest
2 голосов
/ 09 марта 2009

Мне нужно загружать электронные письма из входящей почты gmail только с помощью poplib. К сожалению, я не вижу никакой возможности выбрать только Входящие, и poplib также дает мне электронные письма от отправленных элементов.

Как выбрать электронную почту только из входящих сообщений?

Я не хочу использовать какие-либо специфичные для Gmail библиотеки.

Ответы [ 3 ]

4 голосов
/ 09 марта 2009

POP3 не имеет понятия «папки». Если gmail показывает вам как «отправленную», так и «полученную» почту, то у вас действительно нет другого выбора, кроме как получить всю эту электронную почту.

Возможно, вам лучше использовать IMAP4 вместо POP3. В Python есть библиотеки, которые будут работать с сервером gmail IMAP4.

3 голосов
/ 09 марта 2009

Я предполагаю, что вы включили POP3 / IMAP доступ к вашей учетной записи GMail.

Это пример кода:

import imaplib
conn= imaplib.IMAP4_SSL('imap.googlemail.com')
conn.login('yourusername', 'yourpassword')
code, dummy= conn.select('INBOX')
if code != 'OK':
    raise RuntimeError, "Failed to select inbox"

code, data= self.conn.search(None, ALL)
if code == 'OK':
    msgid_list= data[0].split()
else:
    raise RuntimeError, "Failed to get message IDs"

for msgid in msgid_list:
    code, data= conn.fetch(msgid, '(RFC822)')
    # you can also use '(RFC822.HEADER)' only for headers
    if code == 'OK':
        pass # your code here
    else:
        raise RuntimeError, "could not retrieve msgid %r" % msgid

conn.close()
conn.logout()

или что-то в этом роде.

2 голосов
/ 09 марта 2009

Этот Java-код предполагает, что вы можете выбрать конкретную «папку» для загрузки, даже при использовании POP3. Опять же, это использует Java, а не Python, поэтому YMMV.

Как загрузить сообщение из GMail с использованием Java (в блоге обсуждается добавление контента в поисковую систему Lucene локально)

...