• Publicidad

Utilizar DzSoft Perl Editor

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Notapor programador_novato » 2007-02-02 01:26 @101

Gracias, y tal vez te suene un poco ignorante mi problema, pero como lo dice mi nick, soy novato, como te había dicho anteriormente, ya instale el Perl, el Apache, hice la prueba de Holamundo y demás, instale el modulo Mail::Sendmail usando el ppm y quedo bien todo hasta allí.

Posteriormente copie el script que viene en el tutorial "enviar email con Windows", le modifique y puse dos correos con cuentas de yahoo, en donde dice smtp le puse el que tiene yahoo, y le agregue la ultima linea que me diste, pero aun así me aparece el mensaje de error; a continuación pongo el script como lo guarde y el error que me aparece:

script:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!C:\perl\bin\perl.exe -w
use strict;
use Mail::Sendmail;
use CGI::Carp qw(fatalsToBrowser);

# Creamos el hash con nuestro mensajes
my %mail = (
To => '[email protected]',
From => '[email protected]',
Subject => 'Probando CGI Y PERL',
Message => 'PRUEBA',
Smtp => 'smtp.mail.yahoo.com'
);

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

# Envío correcto.
print "OK\n";
exit(1);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


mensaje de error en pagina:
Código: Seleccionar todo
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


--------------------------------------------------------------------------------

Apache/2.0.55 (Win32) Server at localhost Port 80


Por favor espero que me respondan y me digan los pasos que tengo que seguir para lograr esto, me URGE mucho, GRACIAS por su atención y los tips que me han dado.
programador_novato
Perlero nuevo
Perlero nuevo
 
Mensajes: 12
Registrado: 2007-01-28 06:17 @303

Publicidad

Notapor explorer » 2007-02-02 06:39 @319

A ver... estás usando Apache para ejecutar un cgi escrito en Perl... por lo que Apache espera recibir una cabecera HTTP de respuesta y el código de una página HTML a continuación.

El error me suena a que no lo estás haciendo.

Haz caso de lo que te dice Apache: busca el fichero de log de errores (seguramente se llame error.log) y mira en él por qué Apache saca un error. Muéstralo aquí por si tienes alguna duda.
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 programador_novato » 2007-02-02 11:29 @520

Hola...gracias por tu respuesta explorer, mira las lineas de error que me aparecen son la siguientes:

[Fri Feb 02 10:25:45 2007] [error] [client 127.0.0.1] malformed header from script. Bad header=ERROR: mail.cgi

[Fri Feb 02 10:25:45 2007] [error] [client 127.0.0.1] MAIL FROM: error (530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html)

Entre al Outlook y trate de enviar algun email desde alli y tampoco me deja porque no reconoce el pop ni el smtp :? Ya no se que hacer porque intente lo que se me ocurre pero no funciona nada :( , y pues como anteriormente mencione, soy principiante en esto y ya no se como seguir :oops: ...espero respuesta y Gracias
programador_novato
Perlero nuevo
Perlero nuevo
 
Mensajes: 12
Registrado: 2007-01-28 06:17 @303

Notapor explorer » 2007-02-02 12:16 @553

La primera línea de error se refiere a lo comentado por mí antes. Realmente, NO necesitas ejecutar el script como si fuera un cgi, con la ayuda de Apache. Simplemente abres una ventana de línea de comandos y ejecutas el script con: perl script.pl (perl mail.cgi, si se llama de esa manera).

El segundo error te lo dice yahoo: para poder enviar correo a través de sus servidores necesita que sea de forma autenticada, es decir, tienes que presentarte al servidor de yahoo con un nombre de usuario y una contraseña. ¿Por qué? Pues porque estás intentando enviar un correo desde el dominio yahoo.com.mx a ese mismo dominio PERO usando el servidor de correo del dominio yahoo.com. Debes utilizar alguno de los servidores de yahoo.com.mx, por ejemplo este: a.mx.mail.yahoo.com. Pero creo que aún así te pedirá que te autentifiques, por lo que entonces el módulo Mail::Sendmail no te servirá (no tiene esa funcionalidad). Deberás usar otro módulo, como por ejemplo el Email::Send, con la ayuda del Email::Send::SMTP::Auth. O quizás más fácil el Mail::Sender::Easy (ejemplo).

Todo depende del servidor al que te conectes, te deje hacerlo de forma anónima o no.
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 creating021 » 2007-02-02 13:33 @606

Tal como explorer dice, depende del servidor:

Si tiene Auth por pop... no podrías hacer nada si no eres usuario pop de ese servidor, también hay que tener en cuenta si usa SSL, MD5, kerberos et cetera.
En fin, Email::Send soporta SSL y puedes ver Net::SMTP que soporta SASL.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor kidd » 2007-02-02 17:41 @778

Hola:

Dudo mucho que Yahoo! te permita usar su servidor SMTP para mandar correos, por lo general los servicios de correo gratuito no permite esto pues no les conviene.

Recuerda que los correos gratuitos ganan dinero de la publicidad que te muestran cuando revisas o envías correos. Que te permitan enviar correos usando SMTP por medio de otro cliente que no es suyo, sería contraproducente. Pero podrías intentar.

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 explorer » 2007-02-02 18:01 @792

programador_novato escribiste:
Código: Seleccionar todo
[Fri Feb 02 10:25:45 2007] [error] [client 127.0.0.1] MAIL FROM: error (530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html)
He entrado en la dirección indicada y sí que están las instrucciones para enviar correo por medios externos a yahoo. Incluso vienen guías de cómo instalarlo en el Outlook Express. Es una instalación de una cuenta POP normal, pero con el añadido de que usan los puerto SSL (465 para SMTP y 995 para POP) para enviar y recibir los correos, y que necesitan una autenticación para enviarles.

La cosa es un poco más complicada de lo normal... necesitas que tu script Perl entienda SSL... o usar otro proveedor que no sea yahoo.
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 » 2007-02-02 22:33 @981

explorer escribiste:
programador_novato escribiste:
Código: Seleccionar todo
[Fri Feb 02 10:25:45 2007] [error] [client 127.0.0.1] MAIL FROM: error (530 authentication required - for help go to http://help.yahoo.com/help/us/mail/pop/pop-11.html)
He entrado en la dirección indicada y sí que están las instrucciones para enviar correo por medios externos a yahoo. Incluso vienen guías de cómo instalarlo en el Outlook Express. Es una instalación de una cuenta POP normal, pero con el añadido de que usan los puerto SSL (465 para SMTP y 995 para POP) para enviar y recibir los correos, y que necesitan una autenticación para enviarles.

La cosa es un poco más complicada de lo normal... necesitas que tu script Perl entienda SSL... o usar otro proveedor que no sea yahoo.



Sip, pero eso no está disponible para cuentas gratuitas:

Email clients such as Microsoft Outlook and Outlook Express require the POP Access feature to be enabled for your mailbox. This features is not enabled for Free Yahoo! Mail accounts.

http://help.yahoo.com/help/us/mail/pop/pop-35.html


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 programador_novato » 2007-02-06 13:27 @602

Hola que tal, ahora tengo el siguiente código, ¿me sirve para lo que quiero hacer? ¿Qué necesito modificar? Es que ya busqué y traté de hacer lo que sé y puedo, pero no logro enviar email.

código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!C:\perl\bin\perl.exe -w
use CGI qw":standard *table";
use CGI::Carp qw(fatalsToBrowser);
use Net::POP3;
$|++; # No buffer
# Comienzo de la página web
print
header,
start_html('Buzón POP3'),
h1('Leer Buzón POP3'),
hr;
# Formulario
print
start_form,
"Servidor: ", textfield('servidor'),br,
"Usuario : ", textfield('usuario') ,br,
"Password: ", password_field('password'),br,
submit,
end_form;
my %mail = (
To => '[email protected]',
From => '[email protected]',
Subject => 'Probando CGI Y PERL',
Message => 'PRUEBA',
Smtp => 'smtp.mail.yahoo.com.mx'
);

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

# Envío correcto.
print "OK\n";
exit(1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Por favor les pido y les agradezco la información y ayuda que me puedan brindar, espero alguna respuesta pronto.
programador_novato
Perlero nuevo
Perlero nuevo
 
Mensajes: 12
Registrado: 2007-01-28 06:17 @303

Notapor explorer » 2007-02-06 13:39 @610

Primero deberías intentar acceder desde tu ordenador, con un cliente de correo como Outlook Express o Mozilla Thunderbird, a un determinado buzón y ver cómo puedes enviar correo usando un servidor de correo SMTP.

Luego, insertar esos datos (buzón, nombre de usuario, contraseña, servidor de correo SMTP) dentro de un script Perl con un módulo. Esta parte es sencilla y hay varios ejemplos a lo largo de todo este foro, pero primero debes resolver la primera parte.

Ya te hemos dicho que yahoo.com.mx no permite enviar correo de forma anónima. Debes autenticarte en sus servidores de correo. Necesitas un nombre de usuario y contraseña.

En el script que pones, solicitas esos datos, pero no se los pasas al servidor de correo. Necesitas usar un módulo que sí lo permita hacer.
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

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

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