2012-04-22 11 views
8

Me di cuenta de que libcurl admite IMAP, pero no encontró nada en la documentación y el ejemplo http://curl.haxx.se/libcurl/c/imap.html es muy pobre. ¿Alguien sabe cómo usar este protocolo en esta lib, cómo descargar correos? Saludos libcurl y imap

+0

Las piezas de IMAP carecen de documentación específica, siéntete libre de unirte a nosotros en el proyecto Curl y ayúdanos a mejorar esto. –

Respuesta

3

El siguiente comando selecciona mi bandeja de entrada y las cuestiones FETCH 1 BODY[TEXT] Gmail para obtener el primer mensaje (el más antiguo):

curl -v 'imaps://creaktive+gmail.com:[email protected]:993/Inbox' 

No estoy seguro de si hay una manera fácil de realizar otras tareas, como listando buzones o seleccionando el último mensaje.

10

Hay una buena correo electrónico en la lista de correo que describe la sintaxis IMAP aquí: http://curl.haxx.se/mail/lib-2013-03/0104.html

Ésta es la parte pertinente: IMAP

--url: //mail.example.com/INBOX/ ; UID = 1 - Selecciona la bandeja de entrada del usuario y obtiene mensaje 1

IMAP --url: //mail.example.com/INBOX; UIDVALIDITY = 50 /; UID = 2 - Selecciona bandeja de entrada del usuario , comprueba el UIDVALIDITY del buzón es 50 y obtiene mensaje 2 si es

IMAP --url: //mail.example.com/INBOX/; UID = 3 /; SECTION = TEXTO - Selecciona bandeja de entrada del usuario y Obtiene mensaje 3, con sólo la parte de texto del mensaje

Además de recuperar un correo electrónico, también es posible transferir un correo electrónico al servidor. Esto se logra a través de comandos de agregación y de IMAPs simplemente utilizando el mecanismo existente de rizo para cargar datos a un servidor: IMAP

--url: //mail.example.com/OUTBOX -T email.txt

  • Se pueden emitir otros comandos, tales como: LIST para listar las subcarpetas de un buzón ; EXAMINE para ver qué correos electrónicos existen en un buzón; CREAR, RENOMBRAR y ELIMINAR para manipular subcarpetas, ALMACENAR para cambiar las propiedades de un correo electrónico y otros. Algunos ejemplos son los siguientes:

IMAP --url: //mail.example.com - Realiza una lista de carpetas de nivel superior

IMAP --url: //mail.example.com/INBOX - realiza una lista de carpetas en la bandeja de entrada del usuario

IMAP --url: //mail.example.com -X "EXAMINAR CORREO" - realiza una lista de mensajes en la bandeja de entrada del usuario

IMAP --url: // mail.example.com/INBOX -X "CREAR subcarpeta" - Crea una subcarpeta dentro del bandeja de entrada del usuario

IMAP --url: // mail.example.com/INBOX -X "Renombrar Sub-carpeta Mis-carpeta" - Cambia el nombre de la subcarpeta dentro de la bandeja de entrada del usuario a mi carpeta

--url imap: // mail.example.com/INBOX -X "DELETE Subcarpeta" - Elimina la subcarpeta dentro de la bandeja de entrada del usuario

--url imap: // mail.example.com/INBOX -X "TIENDA 1 + Indicadores \ Suprimida" - Elimina mensaje 1 de la bandeja de entrada del usuario

IMAP --url: // mail.example.com/INBOX -X "STORE 1 + \ Banderas visto" - Marcas de mensajes 1 en la bandeja de entrada del usuario como leer

Además de utilizar la sintaxis de URL para buscar un mensaje, también es posible usar el mecanismo de solicitud personalizado para realizar también operaciones de FETCH personalizadas. Por ejemplo

IMAP --url: // mail.example.com/INBOX -X "'FETCH 1 BODY [TEXT]" realizará la misma operación que

IMAP --url: // mail.example.com/INBOX/;UID=1/;SECTION=TEXT