Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Problema para enviar email con CGI Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2006-04-23 18:21 @806

Perlero Nuevo
Registrado: 2006-04-23 18:05 @795
Ubicación: Esparza
Mensajes: 2
Problema para enviar email con CGI
¡¡¡ Hola que tal !!!

Soy nuevo con esto de la programación en Perl y con CGI, pero es algo que he encontrado muy interesante.

Mi problema es el siguiente. Tengo un código para enviar email según un nombre de usuario que me es enviado a través de un formulario web; por el momento el nombre lo tengo fijo para efectos de prueba.

Pero al ejecutar el script da el siguiente error: "connect to localhost failed (Unknown error) no (more) retries!ERROR".

Tengo que decirles que estoy trabajando con Windows XP, ActivePerl 5 y Apache, pongo el código al final para ver si alguien me puede ayudar.

Gracias de antemano.

-Un saludo.

Código:
#!C:\perl\bin\perl.exe -w

use strict;
use Mail::Sendmail;

# Creamos el hash con nuestro mensajes
my %mail = (
    To => 'Para xxxx@gmail.com',
    From => 'De yyyy@gmail.com',
    Subject => 'Asunto del mensaje',
    Message => 'Mi mensajes',
    Smtp => 'mail.google.com'
);

# Envíar el mensaje
unless (sendmail(%mail)) {
    # Error!
    print "ERROR\n";
    exit(1);
}

# Envío correcto.
print "OK\n";
exit(1);


Nota 2006-04-24 05:58 @290
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Varias cosas...

* Pon siempre los módulos antes del 'use strict;'
* Los campos 'To' y 'From' están mal escritos. Debes poner sólo la dirección de correo electrónico. Nada de 'Para ' y 'De '.
* El mensaje de error sale por la siguiente razón. Primero, el módulo ha intentado conectarse al servidor 'mail.google.com' para poder enviar el correo. Como ha fallado, ha intentado conectarse al que tiene puesto por defecto, que es 'localhost' (la propia máquina). Y como tampoco ha respondido, sale con fallo. Debes poner en el campo 'Smtp' el nombre de tu servidor de correo. Atención, si tienes que identificarte como usuario (con su correspondiente contraseña) en el servidor de correo, este módulo no te sirve. Puedes usar algo como esto (no probado):
Código:
#!C:\perl\bin\perl.exe

use Email::Send;
use warnings;
use strict;

my $mensaje = <<'__MESSAGE__';
From: yyyy@gmail.com
To: xxxx@gmail.com
Subject: Asunto del mensaje

Mi mensajes
__MESSAGE__

my $cartero = Email::Send->new({mailer => 'SMTP'});
$cartero->mailer_args([Host => 'smtp.dominio.com', username => 'Kerberos1985', password => 'contraseña']);
$cartero->send($mensaje);
Ver Email::Send.


Nota 2006-04-24 08:23 @391
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Hola:

Aquí en el sitio hay un tutorial que te muestra como mandar emails desde Windows:
http://perlenespanol.baboonsoftware.com ... 00050.html

Ahora, explorer tiene razón en sus comentarios, pero quisiera detallar que lo más seguro es que tu conexión con Google falle pues dudo que Google permita usar su mailserver para hacer envío de mensajes por parte de terceros.


Saludos

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Nota 2006-04-24 10:50 @493

Perlero Nuevo
Registrado: 2006-04-23 18:05 @795
Ubicación: Esparza
Mensajes: 2
¡¡ Hola !!

Primero agradecerles por sus respuestas, pero me surgió un problema. No consigo encontrar el paquete Email::Send de la página de ActiveState con la herramienta ppm de Perl, por lo que no he podido probar el código de explorer.

Y el manual para enviar email en windows, ya lo vi y.... de hecho es de ahí donde tomé el código que copié en el foro el cual me da problemas.

Si alguno me puede decir dónde encontrar el paquete que busco o alguna otra idea con mi problema se lo agradecería mucho.

- un saludo.


Nota 2006-04-24 11:11 @507
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Yo veo que sí está en la lista de módulos de ActiveState 8:
http://ppm.activestate.com/BuildStatus/5.8-E.html

Quizás tienes que actualizar tu versión de ActiveState...


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO