[Perl] Problema con Net::SMTP y UTF-8

Antonio Galicia jcgalici en agc.com.mx
Jue Jun 14 17:15:26 CDT 2007


 Saludos,

 Resulta que estoy usando un webmail llamado "openwebmail" en un
servidor con debian. Todo estaba trabajando hasta hace unos pocos
días en que todos los correos que salen usando el webmail se mostraban
"raros". Revisando encontré que por alguna razón ahora todo lo que pasa
por el módulo SMTP automágicamente lo pasa de latin1 a utf8 pero como
no se cambia la cabecera termina hecho una porquería:

 El código hace algo como esto:

	#!/usr/local/bin/perl \-w

	use Net::SMTP;

	$msg='From antoniogc Thu Jun 14 16:00:24 2007
	From: Antonio Galicia <antoniogc en agc.com.mx>
	To: antonio.galicia en agc.com.mx
	Subject: Prueba 2
	Date: Thu, 14 Jun 2007 16:00:24 -0500
	Message-Id: <20070614210024.M31917>
	X-Mailer: Open WebMail 2.51 20050228
	X-OriginatingIP: 192.168.0.98 (antoniogc)
	MIME-Version: 1.0
	Content-Type: text/plain;
        	charset=iso-8859-1

	á é í ó ú ñ Á É Ó Ú Ñ
	á é í ó ú ñ Á É Ó Ú Ñ
	á é í ó ú ñ Á É Ó Ú Ñ
	';

	$smtp = Net::SMTP->new('localhost');

	$smtp->mail('antoniogc');
	$smtp->to('antoniogc');

	$smtp->data();
	$smtp->datasend("$msg\n");
	$smtp->dataend();

	$smtp->quit;

 cuando recibo el correo aparece lleno de símbolos. Si cambiara el
"iso-8859-1" por "utf-8" todo se ve bien pero no es el caso de estar
enviando latin y engañando que es utf8 sobre todo porque dado que es
un cliente web no tengo control sobre la configuración de quienes
usan la aplicación.

 La pregunta es, ¿cómo puedo hacer que el comportamiento regrese a lo
que era? Encontré que se puede usar

	no utf8;
o
	use Encode;

y otros más pero no logro hacer que deje de cambiar el encoding.

 ¿Sugerencias?

-- 
 Saludos,
 Toño
--
Be self-reliant and your success is assured.


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