Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/01/2008, 23:20
forosdelwebdr
 
Fecha de Ingreso: enero-2008
Mensajes: 21
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: ERROR: script CGI

Cita:
Iniciado por teamvipconnectz Ver Mensaje
Alguien me puede ayudar con este error.

Estoy utilizando este script para hacer envio de emails mediante un SMTP externo:

Código:
#!/usr/bin/perl

use lib('lib');
use CGI::Carp qw(fatalsToBrowser);
use MIME::Lite;
use Authen::SASL;
use strict;

my($user)='[email protected]'; 
my($pass)='mipass'; 
my($host)='00.00.00.000'; 

my $msg = MIME::Lite->new(
From =>'[email protected]',
To =>'[email protected]',
Subject =>'CGI email',
Data =>"FUNCIONA"
);

MIME::Lite->send('smtp', $host, AuthUser=>$user, AuthPass=>$pass);
$msg->send;
El script ya me funciono, el problema es que solo puede hacer el envio de 3 mails y despues me aparecio este error, y ya no funciono mas:

Código:
Unknown callback: 'authname'. (user|auth|language|pass)
Y no encuentro informacion sobre el tema en ninguna parte. AYUDA.
Y sí, Perl es un gran lenguage, lamentablemente muy pobre documentado y para debuguear un script se pueden perder semanas, por eso PHP, Ruby con Rail y Python lo estan comiendo vivo.

Veamos:

Código:
#!/usr/bin/perl
Código:
use strict;
use CGI::Carp qw(fatalsToBrowser);
use lib('./lib');
use MIME::Lite;
use Authen::SASL;
strict es un pragma que vuelve a perl más estricto de lo que ya es.
fataltobrowser, si bien es lindo como presenta los errores esta totalmente desaconsejado, desactualizado y es un buen lugar por donde empezar a escarbar.
lib supongo que tiene paquetes en un directorio arriba de la ejecución del script que se llama lib, si no es así eliminalos, igualmente MIME::Lite te conviene que esté instalado en el sistema.

Authen::SASL te pidio este módulo? si no eliminalo MIME y sus derivado lo debe tener si lo necesita.

Código:
my $user = '[email protected]'; 
my $pass = 'mipass'; 
my $host = '00.00.00.000';
Se qué lo eliminaste y dejaste un ejemplo pero siempre recuerda en el ip host poner 4 pares de 3 números para representar un IPV4 xq puede traerte errores en algunos casos por malos módulos.

Código:
my $msg = MIME::Lite->new(
         Subject =>'CGI email',
         Data =>"FUNCIONA"
);
Elimina esto:

Código:
MIME::Lite->send('smtp', $host, AuthUser=>$user, AuthPass=>$pass);
$msg->send;
Casí me infarte cuando ví la mezcla de array, string y hash pero despúes recorde el prototipado de perl... que sería de él sino.... un conjunto de errores..

Prueba con esto:

Código:
$msg->send(
         'smtp',
         $host,
         AuthUser=>$user,
         AuthPass=>$pass,
         From =>'[email protected]',
         To =>'[email protected]'
);
Y me cuantas como te fué, te comento que jamás utilicé MIME::Lite por lo que si no funciona no desesperes, leeremos la fuente, pero por lógica debería funcionar.

Espero q sirva.

Saludos