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 <[email protected]> To: Discusion de Linux en Castellano <[email protected]> Subject: Re: "formail" en Perl Message-ID: <[email protected]> References: <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <[email protected]> ); my $msg = Mail::Message->read($headers); ... $msg->head() entrega el header del mensaje ... -- Marcos Ramirez <[email protected]>

