• Publicidad

Problema para enviar email con CGI

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Problema para enviar email con CGI

Notapor Kerberos1985 » 2006-04-23 18:21 @806

¡¡¡ 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: Seleccionar todo
#!C:\perl\bin\perl.exe -w

use strict;
use Mail::Sendmail;

# Creamos el hash con nuestro mensajes
my %mail = (
    To => 'Para [email protected]',
    From => 'De [email protected]',
    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);
Kerberos1985
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-04-23 18:05 @795
Ubicación: Esparza

Publicidad

Notapor explorer » 2006-04-24 05:58 @290

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: Seleccionar todo
#!C:\perl\bin\perl.exe

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

my $mensaje = <<'__MESSAGE__';
From: [email protected]
To: [email protected]
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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kidd » 2006-04-24 08:23 @391

Hola:

Aquí en el sitio hay un tutorial que te muestra como mandar emails desde Windows:
http://perlenespanol.com/archives-tut/000050.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
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Kerberos1985 » 2006-04-24 10:50 @493

¡¡ 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.
Kerberos1985
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-04-23 18:05 @795
Ubicación: Esparza

Notapor explorer » 2006-04-24 11:11 @507

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...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados