Error al pasar variable a CURL para recoger correo mediante IMAP (SOLUCIONADO)

Iniciado por malariax, 31 Julio 2014, 18:05 PM

0 Miembros y 1 Visitante están viendo este tema.

malariax

Hola buenas, estoy tratando de realizar un script para descargar determinados mail mediante imap. En la siguiente línea el script busca un determinado asunto, en este caso #order# , y de esa búsqueda, la variable "nummail" toma un valor numérico que hace referencia a ese mail con ese asunto si es que existe:

nummail=$(curl --url "imaps://imap.gmail.com:993/INBOX" --ssl-reqd --user "$mail:$passmail" -X "SEARCH SUBJECT '#order#'" --insecure | awk '{print $3}')

El valor lo toma correctamente pero luego viene el problema e la siguiente línea:

curl  --ssl-reqd --user "$mail:$passmail" --insecure --url "imaps://imap.gmail.com:993/INBOX/;UID=$nummail/;SECTION=TEXT" > order

Introduzco la variable $nummail dentro del comando para que de esta manera recoja el mail a traves de imap y lo pase a un archivo de texto. El problema es que no me funciona con lo que curl me da el siguiente error:

curl: (3) URL using bad/illegal format or missing URL

Por alguna razón, me imagino que de sintaxis, el comando curl no coge la variable como es debido, he probado a sustituir $nummail por un número para saber si estaba escribiendo mal el comando y mostraba el mismo error, pero no es así. ¿Alguna sugerencia?
Gracias.

malariax

Me respondo a mi mismo :), tras varios quebraderos de cabeza he descubierto que el valor que tomaba "nummail" no era sólo un valor numérico. Por ejemplo, si el script se encontraba un mail con el asunto #order#,  y este mail era clasificado con el numero 950, "nummail" no estaba tomando sólo el valor 950 si no lo siguiente "950\r". La solución consiste en añadir tr -d "\r" a la siguiente línea, quedando así de la siguiente manera:


nummail=$(curl --url "imaps://imap.gmail.com:993/INBOX" --ssl-reqd --user "$mail:$passmail" -X "SEARCH SUBJECT '#order#'" --insecure | awk '{print $3}' | tr -d "\r")