Página 1 de 1

Problema con Net::SMTP

NotaPublicado: 2009-03-24 07:22 @348
por paolo
Hola.

Antes que nada los felicito por este sitio muy útil para los que no tenemos tanta experiencia con Perl :)

Les explico mi problema: estoy intentando hacer un formulario de contacto; el servidor es Windows; no hay sendmail pero vi que está instalado el módulo Net::SMTP; hasta el día de hoy no he podido hacer funcionar el script. El código es el siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!C:\perl\bin\perl.exe
print "Content-type:text/html\n\n";

use Net::SMTP;
$ServerName="smtp.dominio1.com";
$from="cuenta\@dominio1.com";
$to="cuenta\@dominio2.com";
$subject="Prueba";

$smtp = Net::SMTP->new($ServerName) || die "No se puede conectar al servidor";
$smtp->mail( $from );
$smtp->to( $to );
$smtp->data();
$smtp->datasend("To:  $to\r\n");
$smtp->datasend("From:  $from\r\n");
$smtp->datasend("Subject:  $subject\r\n");
$smtp->datasend("\n");
$smtp->datasend("Prueba de correo\n");
$smtp->datasend("\n");
$smtp->dataend();
$smtp->quit; #

print "Mensaje enviado";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


He cambiado "smtp.dominio1.com" por "mail.dominio1.com" pero no llega el correo. Lo interesante es que tampoco me marca error :?

¿Estoy haciendo algo mal?, ¿será algo del módulo?

He visto otros posts en donde se mencionan otros módulos como Mail::Sender o MIME::Lite pero desafortunadamente no están en el servidor y no hay mucho soporte por parte del hosting para ese asunto.

¡¡ Gracias de antemano por su respuesta !!

¡¡ Saludos !!

NotaPublicado: 2009-03-24 08:07 @380
por explorer
Siempre puedes intentar instalarte los módulos en el mismo directorio donde tienes el programa.

Mira los hilos Cómo "instalar" mi propio módulo e Instalar CGI::Ajax en hosting y en el tutorial Usar módulos sin instalar encontrarás más pistas.

En cuanto a lo del Net::SMTP, a primera vista no veo problemas, pero quien te tiene que decir qué servidor de correo debes usar es tu proveedor de Internet.

NotaPublicado: 2009-03-24 09:11 @424
por paolo
Explorer,

Muchas gracias por responder, justo estuve probando la posibilidad de "instalar" el módulo en un directorio pero tenía un lío tremendo con la carpeta, al final lo pude hacer con Mail::Sendmail.

Posteo el código por si a alguien le sirve (sé que no está muy limpio pero igual puede ayudar a buscar pistas ) :D

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!C:\perl\bin\perl.exe
use Mail::Sendmail;
print "Content-type:text/html\n\n";

my $para="mi\@correo.com";
my $de="otro\@correo.com";
my $mensaje = "Mensaje de prueba\n\n1,2,3\n";

my %mail = (
    To             => $para,
    From           => $de,
    'Content-Type' => 'text/plain; charset="iso-8859-1""',
    Subject        => 'Prueba de correo',
    Body           => $mensaje,
    Smtp           => 'mail.dominio.com'
);

sendmail(%mail) or print "Error: $Mail::Sendmail::error\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¡¡ Mil gracias !!

¡¡ Saludos !!

NotaPublicado: 2009-03-24 12:02 @543
por explorer
Sobra un carácter '"' en la entrada 'Content-Type', al final.