• Publicidad

Problemas al enviar mail con Perl

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Re: Problemas al enviar mail con Perl

Notapor explorer » 2006-01-04 07:54 @370

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

EC1F923C37 488 Wed Jan 4 00:46:00 [email protected]
(connect to relay.upc.es[147.83.2.51]: Connection timed out)
[email protected]

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: Seleccionar todo
use Email::Send;

my $message = <<'__MESSAGE__';
From: [email protected]
To: [email protected]
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.
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

Publicidad

Notapor reggiebcn » 2006-01-04 08:53 @412

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?
reggiebcn
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2005-10-27 11:53 @537

Re: Problemas al enviar mail con Perl

Notapor explorer » 2006-01-04 11:50 @535

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.
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 reggiebcn » 2006-01-04 13:30 @604

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).
reggiebcn
Perlero nuevo
Perlero nuevo
 
Mensajes: 14
Registrado: 2005-10-27 11:53 @537

Notapor Kiloko » 2008-06-06 17:56 @789

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...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
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);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Mencionas
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?
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2008-06-06 19:57 @873

Prueba a cambiar
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
Host      => 'https://correoweb.local.com.mx/exchange/',
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

por
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
Host      => 'correoweb.local.com.mx',
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


De todas formas, yo creo que con el protocolo SMTP, no funcionará el acceder a un servicio vía web de Exchange.
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 Kiloko » 2008-06-09 12:20 @556

Listo, ya quedó...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use strict;
  2. use Mail::Sendmail;
  3.  
  4. # Creamos el hash con nuestro mensajes
  5. my %mail = (
  6.     To => '[email protected]',
  7.     Cc =>  'miotrocorreo@,com.mx',
  8.     From => '[email protected]',
  9.     Subject => 'HOLA SOY UN EJEMPLO',
  10.     Message => 'SOY UN EJEMPLO DE Correo ',
  11.     Smtp => 'equipo.local.mx'  # Esto era lo que fallaba, hubo que cambiarlo
  12. );
  13. unless (sendmail(%mail)) {
  14.     # Error!
  15.     print "ERROR\n";
  16.     exit(1);
  17. }
  18. # Envío correcto.
  19. print "OK. Log says:\n", $Mail::Sendmail::log;
  20. #print "OK\n";
  21. #exit(1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y listo, era la dirección de SMTP.
:D

Encontré esta liga, y me sirvió mucho
http://cpan.uwinnipeg.ca/htdocs/Mail-Sendmail/README.html
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Re: Problemas al enviar mail con Perl

Notapor Txemaracas » 2011-04-04 10:16 @469

Hola tengo un problema al enviar un e-mail.
Probé este código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2.  
  3. use strict;
  4. use Mail::Sendmail;
  5.  
  6. open (MAIL,"|/usr/lib/sendmail -t");
  7. print MAIL "To: to\@e.mail\n";
  8. print MAIL "From: from\@e.mail\n";
  9. print MAIL "Subject: Asunto del mensaje\n\n";
  10. print MAIL "Cuerpo del mensaje\n";
  11. close(MAIL);
  12.  
  13. exit(1);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



pero me da el siguiente error:
"Global symbol "@hotmail" requires explicit package name at EnviarPrueba"

Alguien podría ayudarme, por favor.

Gracias.
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

Re: Problemas al enviar mail con Perl

Notapor explorer » 2011-04-04 11:00 @500

Bienvenido a los foros de Perl en español, Txemaracas.

El código que muestras no genera ese mensaje de error. No aparece @hotmail por ningún sitio.

Lo más seguro es que tengas una línea con un @hotmail dentro de un entrecomillado doble. Perl estará entonces buscando la variable @hotmail, y no la encuentra.

Lo puedes solucionar poniendo un '\' delante de la '@'.
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

Re: Problemas al enviar mail con Perl

Notapor Txemaracas » 2011-04-04 15:20 @680

Hola. Si pongo lo que me dijiste me dice lo siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
@ubuntu:~/Escritorio$ perl EnviarPrueba
sendmail: fatal: open /etc/postfix/main.cf: No such file or directory
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3.  
  4. use strict;
  5. use Mail::Sendmail;
  6.  
  7.  
  8.  
  9. open(SENDMAIL, "| /usr/sbin/sendmail -t");
  10. print SENDMAIL "Reply-to: pedro\@hotmail.com";
  11. print SENDMAIL "Subject: Mensaje con perl";
  12. print SENDMAIL "To: pedrito\@hotmail.com";
  13. print SENDMAIL "Content-type: text/plain";
  14. print SENDMAIL "\n\n";
  15. print SENDMAIL "Este es el texto del mensaje";
  16. print SENDMAIL "\n\n";
  17. close(SENDMAIL);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Txemaracas
Perlero nuevo
Perlero nuevo
 
Mensajes: 136
Registrado: 2011-04-04 10:06 @462

AnteriorSiguiente

Volver a Avanzado

¿Quién está conectado?

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