Linux/Unix Shell Scripting - Error al pasar variable a CURL para recoger correo mediante IMAP

 
Vista:

Error al pasar variable a CURL para recoger correo mediante IMAP

Publicado por Dante (2 intervenciones) el 31/07/2014 17:44:58
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:

1
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:

1
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:

1
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error al pasar variable a CURL para recoger correo mediante IMAP

Publicado por Dante (2 intervenciones) el 31/07/2014 20:37:21
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:

1
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")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Error al pasar variable a CURL para recoger correo mediante IMAP

Publicado por xve (309 intervenciones) el 01/08/2014 00:10:33
Gracias por compartirlo Dante!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar