Mar Ene 03, 2006 8:21 am
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
| Problemas al enviar mail con Perl |
|
|
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  |
|
|
|
Mar Ene 03, 2006 9:50 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
|
|
|
|
|
| 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? |
|
Mar Ene 03, 2006 11:01 am
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
|
|
|
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 |
|
Mar Ene 03, 2006 11:17 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
|
|
|
|
|
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:
|
|
Mar Ene 03, 2006 11:18 am
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
|
|
|
| Diria que ese es el problema, lo del servidor de correo, porque yo no he configurado nada de nada... |
|
Mar Ene 03, 2006 1:11 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
|
|
|
|
|
| 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... |
|
Mar Ene 03, 2006 4:11 pm
|
 |
Perl user
Maestro Honorario

|
Registrado: 03 Nov 2004
Mensajes: 385
|
|
|
|
|
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, |
|
Mar Ene 03, 2006 5:32 pm
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
|
|
|
| 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... |
|
Mar Ene 03, 2006 6:02 pm
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
|
|
|
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 |
|
|
Mar Ene 03, 2006 8:37 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|

Mie Ene 04, 2006 6:54 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
|
|
|
|
|
| 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. |
|

Mie Ene 04, 2006 7:53 am
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
|
|
|
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? |
|
Mie Ene 04, 2006 10:50 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4130
Ubicación: Valladolid, España
|
|
|
|
|
| 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. |
|
Mie Ene 04, 2006 12:30 pm
|
 |
reggiebcn
Perlero Nuevo

|
Registrado: 27 Oct 2005
Mensajes: 14
|
|
|
|
|
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). |
|

Vie Jun 06, 2008 4:56 pm
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 244
Ubicación: MOnterrey NL
|
|
|
|
|
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? |
|

Powered by phpBB © 2001, 2005 phpBB Group
|