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.