Perl en Español

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

Problemas al enviar mail con Perl
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Mar Ene 03, 2006 8:21 am
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Problemas al enviar mail con Perl Responder citando

Hola, estoy intentando enviar mails en un script hecho con Perl y no hay manera. Lo he intentado de dos formas:
- Como se indica en un tutorial del web, usando el comando sendmail.
- Usando un modulo del cpan llamado Mail::Sendmail

En los dos casos, para probar que funciona, he copiado integramente los ejemplos y no hay manera, y la duda que tengo es si es que em falta configurar algo del sistema, el servidor stmp o algo asi.

Gracias Razz
Mensaje Mar Ene 03, 2006 9:50 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
Responder citando

Tanto uno como otro requieren que esté instalado el programa sendmail. ¿Lo está? ¿Te da algún error a la hora de ejecutar el programa?
Mensaje Mar Ene 03, 2006 11:01 am
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Responder citando

Si, el programa sendmail está instalado. Vamos que hago 'which sendmail' y aparece.

Y el programa no da ningun error, se ponen los mails en la cola pero no se llegan a enviar
Mensaje Mar Ene 03, 2006 11:17 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
Responder citando

Si los mensajes se ponen en cola, es que el programa en Perl funciona.
Haz un 'mailq' para saber la razón por la cuál están en cola.
Ten en cuenta que hay ocasiones en las que un mensaje no sale inmediatamente. Depende de cómo esté configurado el servidor de correo. En algunas instalaciones se 'lee y limpia' la cola de mensajes cada diez minutos.
Supongo que habrás probado a enviar el mensaje directamente desde la línea de comandos para probar que funciona:
Código:
mail -s "Prueba de envio" destinatario@sudominio.com < /dev/null
Mensaje Mar Ene 03, 2006 11:18 am
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Responder citando

Diria que ese es el problema, lo del servidor de correo, porque yo no he configurado nada de nada...
Mensaje Mar Ene 03, 2006 1:11 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
Responder citando

Hay varios módulos para enviar correos. Uno de ellos es Mail::Internet. Con la función smtpsend podrás indicar el host que te servirá como servidor de correo, siempre y cuando no tengas antes que autenticarte en él...
Mensaje Mar Ene 03, 2006 4:11 pm
Perl user
Maestro Honorario
Maestro Honorario
Registrado: 03 Nov 2004
Mensajes: 385
Responder citando

Te recomiendo utilizar Email::Send junto con cualquiera de los módulos del espacio de nombres Email::*, los cuales cumplen rigurosamente con los RFCs necesarios para envío y recepción de correo así como una API sencilla de utilizar, son módulos que actualmente están mantenidos y actualizados.

Saludos,
Mensaje Mar Ene 03, 2006 5:32 pm
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Responder citando

Creo que el problema es que no se cual es el servidor smtp. Yo quiero enviar un simple mail, pero no tengo host ni nada de nada...
Mensaje Mar Ene 03, 2006 6:02 pm
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Responder citando

El mail no se llega a enviar, se queda en la cola así:

Código:
EC1F923C37      488 Wed Jan  4 00:46:00  me@here.com
                  (connect to relay.upc.es[147.83.2.51]: Connection timed out)
                                         e6973372@est.fib.upc.edu
Mensaje Mar Ene 03, 2006 8:37 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

Dentro del sitio hay un tutorial que te podría servir:
http://perlenespanol.baboonsoftware.com/archives-tut/000024.html


SALUDOS
Mensaje Mie Ene 04, 2006 6:54 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
Responder citando

reggiebcn escribió:
El mail no se llega a enviar, se keda en la cola asi:

EC1F923C37 488 Wed Jan 4 00:46:00 me@here.com
(connect to relay.upc.es[147.83.2.51]: Connection timed out)
e6973372@est.fib.upc.edu

A ver... el mensaje dice que ha ocurrido un timeout en la conexión con el servidor... puede ser porque ese servidor no responda o que esté esperando la autenticación para poder enviar.
¿Has conseguido alguna vez enviar correo desde esa máquina? Si no es así, primero tienes que averiguar cuál es tu servidor de correo más cercano que puedas utilizar -tener una cuenta de correo en él-.
Luego, podrás usar el módulo Email::Send para enviarle.
Para enviar un correo sólo necesitas saber 3 detalles: nombre del servidor de correo, nombre del usuario con el que te vas a identificar en él y la contraseña de ese usuario.
Código:
use Email::Send;

my $message = <<'__MESSAGE__';
From: me@here.com
To: e6973372@est.fib.upc.edu
Subject: Nuevo boletin
 
Hay un nuevo boletín
__MESSAGE__

my $mailer = Email::Send->new(
  {
    mailer => 'SMTP',
    mailer_args =>
    [
      Host      => 'relay.upc.es',
      username => 'regglebcn',
      password => 'sdfhc334',
    ]
  }
);
$mailer->send($message);
Si el servidor de correo que vas a usar no necesita autenticación, más fácil todavía, porque no necesitas indicar username y password.
Mensaje Mie Ene 04, 2006 7:53 am
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Responder citando

Vale, entiendo lo que me dices.
Lo que pasa que yo no quiero usar un servidor externo, vease el de fib.upc.es o el de hotmail o cual sea, o si es externo, que no precise de autentificacion. Asi que lo que me gustaria es tener un servidor local de correo, se puede no?
Mensaje Mie Ene 04, 2006 10:50 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4092
Ubicación: Valladolid, España
Responder citando

Si, siempre que tengas acceso a internet, es facil tener tu propio servidor de correo. Sólo necesitas instalarte uno. Puede ser el sendmail, el qmail, postfix, u otros.
Mensaje Mie Ene 04, 2006 12:30 pm
reggiebcn
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Oct 2005
Mensajes: 14
Responder citando

Vale, así que he de instalarme por ejemplo Postfix... En mi Ubuntu viene por defecto, pero no sé configurarlo, la verdad.

Y el programa sendmail que está incluido en la distro, ¿es el mismo que el Sendmail que se puede usar como servidor de correo? (por lo que he leído buscando por Google, muy difícil de configurar).
Mensaje Vie Jun 06, 2008 4:56 pm
Kiloko
Perlero Adicto
Perlero Adicto
Registrado: 10 Jul 2007
Mensajes: 244
Ubicación: MOnterrey NL
Responder citando

Yo tengo una duda sobre el programa que planteas,
Trabajo bajo Ubuntu, pero mi correo es Evolution que se basa en Exchange, pero ejecuto el programa y no aparece nada...

Perl:
use Email::Send;

my $message = <<'__MESSAGE__';
From: g@hotmail.com
To: g@hotmail.com
Subject: Nuevo boletin
 
Hay un nuevo boletín
__MESSAGE__

my $mailer = Email::Send->new(
  {
    mailer => 'SMTP',
    mailer_args =>
    [
      Host      => 'https://correoweb.local.com.mx/exchange/',
      username => 'usuario',
      password => 'pasword',
    ]
  }
);
$mailer->send($message);


Mencionas
Cita:
Para enviar un correo sólo necesitas saber 3 detalles: nombre del servidor de correo, nombre del usuario con el que te vas a identificar en él y la contraseña de ese usuario.


Supongo que te refieres a mi servidor de correo en este caso Exchange, ¿usuario y pasword? ¿y esa parte de SMTP que utilizan otros programas? ¿a qué se refiere, no logro entender eso?

Aquí la pregunta sería ¿cómo puedo saber la IP de mi servidor de correo electrónico?
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Ir a página 1, 2  Siguiente
Página 1 de 2



Powered by phpBB © 2001, 2005 phpBB Group