Página 1 de 1

Descargar archivo adjunto en correo

NotaPublicado: 2015-12-02 16:12 @717
por audax
Estimados, un gusto en saludar a todos. Mi duda es la siguiente:

Necesito descargar unos archivos adjuntos (XML), que vienen en algunos correos. El tema es que si me pueden decir cómo hacer esto ya que he estado buscando y no he encontrado cómo.

Me puedo conectar al servidor y leer los correos con la librería Net::POP3, pero me falta un paso para realizar la descarga. Estaría muy agradecido si alguien me pudiera decir cómo puedo descargar estos archivos. Gracias.

Re: Descargar archivo adjunto en correo

NotaPublicado: 2015-12-02 17:03 @752
por explorer
Por estos foros sí que hemos hablado de ese tema (recuperar correo con Net::POP3, y descargar adjuntos).

Lee a partir de este mensaje. O todo el hilo, si tienes fuerzas.

Es un comentario de hace seis años, así que ahora debería haber una solución más sencilla, en CPAN.

Re: Descargar archivo adjunto en correo

NotaPublicado: 2015-12-03 07:38 @360
por audax
Muchas gracias, explorer, me sirve muchísimo lo que me diste, estaba un poco perdido de cómo hacerlo. Gracias nuevamente, explorer.

Re: Descargar archivo adjunto en correo

NotaPublicado: 2015-12-03 11:15 @510
por audax
Excelente, pude descargar los xml que necesito de los correos, utilizando la librería Email::MIME::Attachment::Stripper, funcionó de maravillas.

Ahora, sobre el mismo tema, yo necesito correr una vez al día este script para ir descargando los xml que llegan. El problema que tengo es que cada vez recorro toda la bandeja de correos descargando los mismos XML.

¿Hay una formar de que solo lea los correos "no leídos", y que al leerlo le cambio el status a leído para no volverlo a leer?

Gracias por todo.


Edito:
Me contesto a mi mismo: http://perlenespanol.com/foro/como-puedo-saber-si-un-mail-especifico-ha-sido-leido-t1833.html.

Lo que no me quedo claro era si al leer el correo con mi script, este cambiaría automáticamente de status o tendría que ocupar una función para hacer ese cambio.

Gracias.

Re: Descargar archivo adjunto en correo

NotaPublicado: 2015-12-04 03:34 @190
por explorer
En algunos casos se soluciona simplemente mandando borrar el correo que hemos procesado.

En otros casos, es usar un módulo que acceda al servidor y solicite solo los nuevos correos, no todos.

Una vez hice un bucle que hacía un bucle por toda la bandeja de entrada, y borraba cada mensaje en cuanto terminaba de leerlo. Lo procesaba y pasaba al siguiente. Así dejaba la bandeja limpia. Pero, claro, se trataba de una cuenta de correo dedicada en exclusiva a nuestro proceso, por eso podíamos borrar todos los correos, pudiéramos procesarlos o no.

Pero si tu programa no tiene permiso para borrar los correos (lo hará otro), y no te funciona lo de pedir traer los correos marcados como nuevos, como el programa se ejecuta cada día, puedes usar ese hecho para saber qué correos debes procesar.