"formail" en Perl

Marcos Ramirez mramireza en armada.cl
Vie Jul 31 16:56:24 CLT 2009


On Fri, 2009-07-31 at 15:57 -0400, Alvaro Herrera wrote:
> Marcos Ramirez escribió:
> > Mail::Internet (MailTools) deberia servirte, aunque francamente no veo
> > porque no pudieras usar Mail::Message (Mail-Box) como se describe en
> > Mail::Message::Construct::Build (Mail-Box).
> 
> El problema es construir el header.  En la BD lo guardo como un string
> de varias líneas, y no veo en Mail::Message::Construct cómo crear un
> header a partir de eso.  Toda la API parece asumir que uno va a ingresar
> los campos uno por uno, pero con este diseño de BD es un cacho hacerlo
> así (no se puede simplemente cortar línea por línea, porque los campos
> largos pueden usar más de una línea, como Received, los subject largos,
> los To y CC largos, etc).  Tendría que ponerme a procesar el header pero
> eso es justo lo que no quiero hacer ...

Asumiendo que esto es lo que guardas en tu BD, ¿ Que tiene de malo algo
como lo que incluyo ? Mas aun, si tienes el cuerpo del mensaje en otro
campo, perfectamente puedes concatenar ambos y pasarlos como parametro
del  Mail::Message->read($var) (recuerda que hay una linea en blanco
entre ambos)

Saludos

#!/usr/bin/perl

use Mail::Message;

my $headers = qq(Date: Fri, 31 Jul 2009 15:57:30 -0400
From: Alvaro Herrera <alvherre en alvh.no-ip.org>
To: Discusion de Linux en Castellano <linux en listas.inf.utfsm.cl>
Subject: Re: "formail" en Perl
Message-ID: <20090731195730.GE11099 en alvh.no-ip.org>
References: <20090728203614.GF25710 en alvh.no-ip.org>
         <20090729000843.GL25710 en alvh.no-ip.org>
         <1248884249.2546.6.camel en pillan.dgpa.armada.cl>
         <20090731182143.GC11099 en alvh.no-ip.org>
         <1249066385.2472.10.camel en pillan.dgpa.armada.cl>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1249066385.2472.10.camel en pillan.dgpa.armada.cl>
);

my $msg = Mail::Message->read($headers);
...
$msg->head() entrega el header del mensaje ...


-- 
Marcos Ramirez <mramireza en armada.cl>





Más información sobre la lista de distribución Linux