Seleccione mails de sozinho caixa de entrada via poplib
Pergunta
Eu preciso baixar e-mails da caixa de entrada do Gmail usando apenas poplib.Unfortunately Eu não vejo nenhuma opção para selecionar caixa de entrada sozinho, e poplib me dá e-mails de itens enviados também.
Como faço para selecionar e-mails somente de caixa de entrada?
Eu não quero usar qualquer bibliotecas gmail específicas.
Solução
POP3 não tem noção de 'pastas'. Se gmail está mostrando que ambos 'enviado', bem como e-mail 'recebido', então você realmente não tem nenhuma opção mas para receber tudo o que e-mail.
Talvez você seria melhor fora de usar IMAP4 em vez de POP3. Python tem bibliotecas que irão trabalhar com o servidor IMAP4 do gmail.
Outras dicas
Eu supor que você tenha ativado o acesso POP3 / IMAP em sua conta do Gmail.
Este é um código de exemplo:
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()
ou algo assim.
Este código Java sugeriria que você pode selecionar uma "pasta" especial para download, mesmo quando usando POP3. Novamente, isso é usando Java, não Python assim YMMV.