11.8.1 Objetos IMAP4

Todas las órdenes de IMAP4rev1 están representadas por métodos homónimos, tanto en mayúsculas como en minúsculas.

Se convierten a cadenas todos los arguentos de dichas órdenes, salvo "AUTHENTICATE" y el último argumento de "APPEND", que se pasa como literal IMAP4. Si es necesario (la cadena contiene caracteres relevantes para el protocolo IMAP4 y no está entrecomillada o entre paréntesis) se entrecomilla cada cadena. Sin embargo, siempre se entrecomilla el argumento password de la orden "LOGIN". Si se desea evitar que se entrecomille un argumento (por ejemplo, el argumento flags de "STORE"), se debe encerrar la cadena entre paréntesis, de este modo r'(\Deleted)').

Cada orden devuelve una tupla: (tipo, [datos, ...]) donde tipo suele ser 'OK' o 'NO', y data es el texto de la respuesta a la orden o los resultados de la orden.

Una instancia de IMAP4 cuenta con los siguientes métodos:

append (mailbox, flags, date_time, message)
Agregar el mensaje al apartado dado.

authenticate (func)
Orden de autentificación. Requiere procesado de la respuesta. En la actualidad, no está implementado y lanza una excepción.

check ()
Marca el apartado en el servidor.

close ()
Cierra el apartado actual. Se eliminan los mensajes borrados del apartado escribible. Ésta es la orden que se recomienda hacer antes de "LOGOUT".

copy (message_set, new_mailbox)
Copia los mensajes message_set al final de new_mailbox.

create (mailbox)
Crea un nuevo apartado denominado mailbox.

delete (mailbox)
Elimina un apartado existente llamado mailbox.

expunge ()
Elimina permanentemente los elementos borrados del apartado seleccionado. Genera una respuesta "EXPUNGE" para cada mensaje borrado. Los datos devueltos contienen una lista de números de mensaje "EXPUNGE" en el orden recibido.

fetch (message_set, message_parts)
Recupera mensajes (puede que parciales). message_parts debe ser una cadena de nombres de parte de mensaje entre paréntesis, por ejemplo: ""(UID BODY[TEXT])"". Los datos devueltos son tuplas de envoltorios de parte de mensaje y datos.

list ([directory[, pattern]])
Enumera los nombres de apartados de directory que concuerdan con pattern. directory es por omisión la carpeta de correo del nivel superior y pattern concuerda por omisión con cualquier cosa. Los datos devueltos contienen una lista de respuestas "LIST".

login (user, password)
Identifica al cliente mediante una contraseña en texto legible. Se entrecomillará password.

logout ()
Finaliza la conexión al servidor. Devuelve la respuesta "BYE" del servidor.

lsub ([directory[, pattern]])
Enumera los nombre de los apartados a los que se está suscrito que concuerden con el patrón pattern. directory es por omisión la carpeta de correo del nivel superior y pattern concuerda por omisión con cualquier cosa. Los datos devueltos son tuplas de envoltorios de parte de mensaje y datos.

noop ()
Envía "NOOP" al servidor.

open (host, port)
Abre un socket al puerto port del nodo host. Se puede redefinir este método.

partial (message_num, message_part, start, length)
Recupera una parte recortada de un mensaje. Los datos devueltos son tuplas de envoltorios de parte de mensaje y datos.

recent ()
Solicita una actualización al servidor. Los datos devueltos son None si no hay mensajes nuevos o el valor de la respuesta a "RECENT" en caso contrario.

rename (oldmailbox, newmailbox)
Renombra el apartado oldmailbox a newmailbox.

response (code)
Devuelve los datos de respuesta de code si se reciben o None. Devuelve el código dado, en lugar del tipo habitual.

search (charset, criterium[, ...])
Busca mensaje con el criterio dado en el apartado. Los datos de respuesta contienen una lista de números de mensaje separados por espacios. charset puede ser None, en cuyo caso no se especificará un juego de caracteres, "CHARSET" en la petición al servidor. El protocolo IMAP requiere que se especifique al menos un criterio. Se lanzará una excepción si el servidor devuelve un error.

Ejemplo:

# M es una instancia de IMAP4 conectada...
msgnums = M.search(None, 'FROM', '"LDJ"')

# o:
msgnums = M.search(None, '(FROM "LDJ")')

select ([mailbox[, readonly]])
Seleccionar el apartado mailbox. Los datos devueltos son el número de mensajes del apartado (la respuesta a "EXISTS"). El apartado predeterminado es 'INBOX'. Si está activo el indicador readonly, no se permiten las modificaciones al apartado ni a su contenido.

socket ()
Devuelve la instancia de socket que se utiliza para conectarse al servidor.

status (mailbox, names)
Solicita las condiciones de estado nombradas para el apartado mailbox.

store (message_set, command, flag_list)
Altera las disposiciones de los indicadores del apartado.

subscribe (mailbox)
Subscribe to new mailbox.

uid (command, arg[, ...])
Ejecuta la orden command con los argumentos proporcionados identificados por UID, no por número de mensaje. Devuelve una respuesta apropiada para la orden. Se debe proporcionar al menos un argumento; en caso contrario el servidor devolverá un error y se lanzará una excepción.

unsubscribe (mailbox)
Finaliza la suscripción al apartado dado.

xatom (name[, arg[, ...]])
Permite órdenes de extensión sencillas notificadas por el servidor en la respuesta a "CAPABILITY".

Se definen los siguientes atributos en las instancias de IMAP4:

PROTOCOL_VERSION
El protocolo soportado más reciente de la respuesta "CAPABILITY" del servidor.

debug
Valor entero para controlar la información de depuración. EL valor inicial se toma de la variable de módulo Debug. Los valores superiores a tres rastrean cada orden.


Ver Sobre este documento... para obtener información sobre sugerencias.