Seleccione los correos de la bandeja de entrada solo a través de poplib
Pregunta
Necesito descargar correos electrónicos de la bandeja de entrada de gmail solo usando poplib. Desafortunadamente, no veo ninguna opción para seleccionar solo la Bandeja de entrada, y poplib también me da correos electrónicos de los elementos enviados.
¿Cómo selecciono los correos electrónicos solo desde la bandeja de entrada?
No quiero usar ninguna biblioteca específica de gmail.
Solución
POP3 no tiene el concepto de 'carpetas'. Si gmail te muestra tanto el correo 'enviado' como el 'recibido', entonces realmente no tienes más remedio que recibir todo ese correo electrónico.
Tal vez sería mejor usar IMAP4 en lugar de POP3. Python tiene bibliotecas que funcionarán con el servidor IMAP4 de gmail.
Otros consejos
Supongo que ha habilitado el acceso POP3 / IMAP a su cuenta de GMail.
Este es un código de ejemplo:
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()
o algo como esto.
Este código de Java sugiere que puede seleccionar una carpeta " " " para descargar, incluso cuando se utiliza POP3. Nuevamente, esto está usando Java, no Python, por lo tanto, YMMV.