Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Configuración para envío de correos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI
Mensaje Mar Ago 26, 2008 1:24 pm
piero66
Perlero Nuevo
Perlero Nuevo
Registrado: 22 May 2008
Mensajes: 34
Configuración para envío de correos Responder citando

¡Buenas tardes!

Tengo un problema para mi, complicado Crying or Very sad , espero que me ayuden Embarassed

Hay un programa que tengo pare enviar correos que está como sigue:

Perl:
#!/usr/bin/perl

 use Mail::Sendmail;

$mail{'To'} = 'luisfuentes11@hotmail.com';
$mail{'Smtp'} = '192.168.1.11';
$mail{'From'} = 'atencion.tramites@leon.gob.mx';
$mail{'Subject'} = "Envio Perl";
$mail{'body'} = "Prueba desde Script Perl";
if (!sendmail(%mail)) {
    print "Error : $Mail::Sendmail::error\n";
    exit 0;
}
print "Correo enviado\n";


¡¡ Me sale el siguiente error !!

Código:
Error : RCPT TO: error (550 5.7.1 Unable to relay for luisfuentes11@hotmail.com)


Tenemos un servidor smtp exchange (192.168.1.11) el cual me obstaculiza a poder enviar el correo, ¿será porque no soy cliente de Microsoft? por seguridad, etc !! eso no lo sé!!

Mi pregunta es esta: ¿¿¿no hay manera de que mi servidor sin ayuda de ese servidor exchange, pueda enviar correo a servidores como (hotmail,gmail,yahoo) etc, ???

Me han mencionado algo del evolution, vi que ese me habla del Ubuntu, ese es otra versión de Linux !? La verdad no sé mucho de esto, ¡¡ mi Linux está configurado con CentOS 5, !!

Gracias, espero su respuesta, ¡¡ please !!
Mensaje Mar Ago 26, 2008 2:57 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

No te deja enviar correo porque seguro que tienes que autenticarte en el servidor.

Yo usaría el Mail::Sender, pues tienes facilidades para hacerlo. En estos foros hay algunos ejemplos con Mail::Sender.
Mensaje Mie Ago 27, 2008 10:01 am
piero66
Perlero Nuevo
Perlero Nuevo
Registrado: 22 May 2008
Mensajes: 34
Responder citando

Ya chequé lo del Mail::Sender.

Ejecuto el siguiente archivo, ¡¡ pero me vota un error !!

Perl:
#!/usr/bin/perl

use Mail::Sender;

my $sender = Mail::Sender->new();

if ($sender->MailMsg({
                         smtp => 'leonex.leonad.gob.mx',
                         from => 'atencion.tramites@leon.gob.mx',
                         to =>'piero66@hotmail.com',
                         subject => 'this is a test',
                         msg => "Hi Johnie.\nHow are you?.....",
                         auth => 'NTLM',
                         authid => 'root',
                         authpwd => 'asdf1234',
                     }) < 0) {
                         die "$Mail::Sender::Error\n";
                     }
print "Mail sent OK."


El error que me vota es el siguiente:

Código:
Can't locate Authen/NTLM.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.7/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.6/x86_64-linux-thread-multi /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 4) line 1, <GEN0> line 19.
BEGIN failed--compilation aborted at (eval 4) line 1, <GEN0> line 19.


¿¿¿ Tengo que instalar alguna librería NTLM.pm ???

Porque ejecuté este código
Perl:
use Mail::Sender;
 my $sender = new Mail::Sender {smtp => 'localhost'};
 die "Error: $Mail::Sender::Error\n" unless ref $sender;
 print join(', ', $sender->QueryAuthProtocols()),"\n";


y él indicó lo siguiente:

NTLM,GSSAPI,LOGIN

Si utilizo auth => 'GSSAPI', el error es:
Código:
Authentication protocol GSSAPI is not implemented by Mail::Sender


Si utilizo: auth => 'LOGIN' el error es:
Código:
login not accepted


¡¡¡ Espero no te haya dormido con tanto rollo !!!

¡ Gracias !
Mensaje Mie Ago 27, 2008 10:30 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

El error dice que no encuentra el módulo Authen::NTLM. Prueba a instalarlo.
Mensaje Vie Ago 29, 2008 2:11 pm
piero66
Perlero Nuevo
Perlero Nuevo
Registrado: 22 May 2008
Mensajes: 34
Responder citando

¿Se instala así... cpan Authen::NTLM.pm?
Mensaje Vie Ago 29, 2008 2:19 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

No. Con cpan Authen::NTLM.
Mensaje Vie Ago 29, 2008 2:25 pm
piero66
Perlero Nuevo
Perlero Nuevo
Registrado: 22 May 2008
Mensajes: 34
Responder citando

Oye, ya lo instalé, corrí el programa pero ahora el mensaje es este:

Código:
Authentication protocol NTLH is not accepted by the server
Mensaje Vie Ago 29, 2008 2:55 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

Jajaja...

Pues entonces, antes deberás preguntar al administrador del sistema qué sistemas de autenticación dispones.
Mensaje Lun Sep 01, 2008 7:41 am
piero66
Perlero Nuevo
Perlero Nuevo
Registrado: 22 May 2008
Mensajes: 34
Responder citando

ok, gracias !!,, porque la risa,, me vi muy guey con la pregunta !! jajaja

la verdad sí ,,,!!! Laughing

una última pregunta ,,

Código:
authid =>
authpwd =>


estos dos parámetros se refiere a una cuenta del servidor de Linux, para que la reconozca el servidor de Exchange !!?? ¡¡digo solo para corroborar!!
jajaja Embarassed
Mensaje Lun Sep 01, 2008 7:51 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

Ahí se guarda el usuario y contraseña que se entrega al servidor de correo, cuando lo pide.
Mensaje Lun Sep 01, 2008 8:39 am
piero66
Perlero Nuevo
Perlero Nuevo
Registrado: 22 May 2008
Mensajes: 34
Responder citando

Oye, me comentan que el protocolo es MAPI... Según esto !??, ¿qué debo hacer en eso caso? Por que según si mal no entendí yo solo tengo en mi servidor estos tres
Código:
GSSAPI
LOGIN
NTHL


Eso me lo dijo esta instrucción:
Perl:
print join(', ', $sender->QueryAuthProtocols()),"\n";
Mensaje Lun Sep 01, 2008 11:03 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

A ver... son cosas distintas, y no tienen nada que ver... creo yo...

Una cosa es el protocolo MAPI, que no es estándar. Es propio de Micro$oft.

Las tres opciones que muestras con QueryAuthProtocols(), son las 3 posibles formas de autenticarte en el servidor $sender al que te conectas.

Así que, entonces, yo creo que me estás hablando de dos servidores o de un servidor que tiene los dos protocolos.

En CPAN no hay nada para controlar el protocolo MAPI excepto el módulo Mail::Outlook, así que desde tu Linux, lo tienes difícil para hablarle a esa pasarela.

Lo que te interesa es poder enviar correo de forma directa a través de la red local hacia el exterior, pero al tener tu máquina, seguramente, una dirección local, la mayoría de los servidores de correo desecharán tu solicitud. Debes entonces usar un servidor intermediario. Mira a ver si desde tu máquina te responde, por ejemplo, el servidor de Gmail (hazle un ping, o mejor, pregúntale los sistemas de autenticación disponibles, como indica la sección Authentication de Mail::Sender). A mí me sale
Código:
gmail.com.              2544    IN      MX      50 gsmtp147.google.com.
gmail.com.              2544    IN      MX      50 gsmtp183.google.com.
gmail.com.              2544    IN      MX      5 gmail-smtp-in.l.google.com.
gmail.com.              2544    IN      MX      10 alt1.gmail-smtp-in.l.google.com.
gmail.com.              2544    IN      MX      10 alt2.gmail-smtp-in.l.google.com.

También funcionará un simple telnet a una de estas máquinas, al puerto 25.

Si no puedes hacerlo, tienes que mirar si existe algún cortafuegos, tanto en tu equipo como en el enrutador de salida hacia Internet.

Recuerda un punto importante: no necesitas autenticarte si eres capaz de conectarte directamente al servidor de correo del destinatario. Sí que necesitas hacerlo si la carta quieres que sea redirigida a otra parte, a otro usuario o dirección que no está en el servidor de correo.
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group