2010-12-16 34 views
7

Estoy usando imaplib para trabajar con imap en python, sin embargo, parece que no tiene los medios para analizar los detalles de las respuestas IMAP. Por ejemplo, consultar como:Analizando las respuestas IMAP en python

msgdata = connection.fetch(num, "(BODY.PEEK[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] UID)") 

donde num es el número de mensaje, para un servidor de correo puede producir (por ejemplo):

('OK', [('1234 (BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ' UID 3456)']) 

y para otro:

('OK', [('1234 (UID 3456 BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ')']) 

Como ya ves, los detalles del mensaje son diferentes y el UID está incluso en un elemento diferente allí. Entonces, la pregunta es: ¿hay alguna biblioteca que permita ordenarla automáticamente y abstraer los detalles de lo que hace un servidor de correo en particular?

Respuesta

6

Doug Hellman's Python Module of the Week entry for imaplib es un extenso tutorial sobre el tema, pero es muy largo de reproducir aquí.

Es posible que desee utilizar una biblioteca de nivel superior como IMAPClient para ocultar algunos de los detalles del protocolo IMAP.

+0

Desafortunadamente, el tutorial de Doug se desliza sobre el tema del análisis de respuestas fetch() más complejas. Gracias por el enlace a IMAPClient, lo verificaré. – StasM