Jue Sep 20, 2007 4:46 pm
|
 |
mark
Perlero Nuevo

|
Registrado: 19 Sep 2007
Mensajes: 4
|
|
| Script que recupere archivos adjuntos del correo |
|
|
Hola, soy nuevo en este foro,espero que me ayuden con un problema que tengo, cuento con un script que me captura el archivo adjunto del correo pero la verdad que cuando lo ejecuto me sale un error, no sé si me falta instalar algunas herramientas más para que funcione o algo así.
Les mando el código para que lo vean.
| Perl: | #! /usr/bin/perl
use Email:: MIME;
my $parsed = Email:: MIME-> new($message); #Tome un mensaje de correo
#my $mail = Email::Simple->new($text);
my @received = $mail-> header("Received");
my $old_body = $mail-> body; #salvar el body original
$mail-> body_set("Not Perl? You suck!");
print $mail-> as_string; #convertirlo en string
my $parsed = Email:: MIME-> new($message); #Se de cuenta si el mensaje es multipart (contiene adjuntos) y
#my @parts = $parsed->parts; #separe la parte de texto plano y la parte de adjuntos
for (@parts) { #Y en @parts tienes el conjunto de partes. Cada parte la puedes manipular para
my $t = $_-> content_type; #saber tipo, archivo a disponer (si es adjunto) y "cuerpo" como tal.
my $f = $_-> filename;
my $b = $_-> body;
} |
Desde ya les agradezco su ayuda. |
|
|
|

Jue Sep 20, 2007 5:12 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1366
Ubicación: México
|
|
|
|
|
Hola mark, bienvenido a los foros de Perl en Español.
Comentas que te sale un error ¿qué dice ese error?
Saludos |
|
Jue Sep 20, 2007 5:34 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
|
|
|
|
|
¿Dónde se inicializa $message?
¿Por qué le cambias el cuerpo del mensaje?
¿Lo parseas dos veces?
¿Dónde se inicializa @parts? |
|

Mie Dic 05, 2007 12:28 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
|
|
|
|
|
El error dice que $message no ha sido definido en ninguna parte.
Es decir, le estás pidiendo a la librería que te descomponga el $message en las partes que lo componen... pero... $message está vació.
Antes, debes leer el $message. Puede ser un mensaje guardado en un fichero externo o puede quizás estar en un buzón... pero no lo lees... |
|

Mie Dic 05, 2007 3:15 pm
|
 |
mark
Perlero Nuevo

|
Registrado: 19 Sep 2007
Mensajes: 4
|
|
|
|
|
Eso quiere decir que si por ejemplo, reemplazo la variable ($message)
por la ruta del archivo en este caso el email que está entrando me va a funcionar.
Efectivamente. Si ahora no me salió ningún error pasó como si nada, pero no sé salió ninguna información de donde fue guardado, o sea quiero saber si fue capturado o no el archivo adjunto y cuando lo capture lo mande a una ruta especifica para poder procesarlo, me pueden apoyar en esto.
Att: Mark
Gracias por su ayuda. |
|
Mie Dic 05, 2007 3:49 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
|
|
|
|
|
Email::MIME no admite como entrada la ruta del archivo.
P.D. Estamos en el foro Experto, así que las respuestas son "ad hoc". |
|
Mie Dic 05, 2007 4:04 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
|
|
|
|
Mie Dic 05, 2007 4:11 pm
|
 |
mark
Perlero Nuevo

|
Registrado: 19 Sep 2007
Mensajes: 4
|
|
|
|
|
| Gracias por tu ayuda explorer |
|
Powered by phpBB © 2001, 2005 phpBB Group
|