Foros del Web » Programando para Internet » PHP »

Función email() no envia mensajes a detinatarios...

Estas en el tema de Función email() no envia mensajes a detinatarios... en el foro de PHP en Foros del Web. Los mensajes que envia mi script con la funcion email() no llegan a los destinatarios indicados. Este mi script : <?php $email=$_POST["e_mail"]; $usuario=$_POST["usuario"]; $conexion_host2 = ...
  #1 (permalink)  
Antiguo 20/12/2005, 09:53
 
Fecha de Ingreso: octubre-2005
Mensajes: 778
Antigüedad: 18 años, 6 meses
Puntos: 1
Función email() no envia mensajes a detinatarios...

Los mensajes que envia mi script con la funcion email() no llegan a los destinatarios indicados.

Este mi script :

<?php
$email=$_POST["e_mail"];
$usuario=$_POST["usuario"];
$conexion_host2 = mysql_connect("localhost","login","clave");
mysql_select_db("mundobolivar", $conexion_host2);
$consulta_usuarios = mysql_query("SELECT * FROM usuarios WHERE usuario LIKE '$usuario'", $conexion_host2);

$mensaje_sistema="Bienvenido Usuario :".$reg_actual["usuario"];
$cabecera="From:[email protected]";

if (mail($email,"MUNDO te da la Bienvenida a nuestro portal mundial de noticias...",$mensaje_sistema,$cabecera))
{
mysql_close();
echo "MUNDOBOLIVAR le dirigió un correo a su buzón, confirmando su registro en nuestro portal";
echo "<div>";
}
?>

Falta algún parámetro en la función email() o que error tengo de programación?
  #2 (permalink)  
Antiguo 20/12/2005, 09:59
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
verifica si tu servidor tiene activada la funcion mail(), si esta activada a veces apsa que el atochamiento de los servidores retrasa el envio de e-mails
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #3 (permalink)  
Antiguo 20/12/2005, 10:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Código PHP:
if (mail($email,"MUNDO te da la Bienvenida a nuestro portal mundial de noticias...",$mensaje_sistema,$cabecera)) 
tengo entendido que verifica si se mandó el mail, pero antes hay que mandarlo y no veo que lo hagas.

Saludos
  #4 (permalink)  
Antiguo 20/12/2005, 10:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero ... donde estás probando ese script?

Conoces que PHP no envia e-mails .. ? simplemente la función mail() entrega el e-mail al MTA instalado en tu servidor o configurado para que lo use (en su php.ini). Será este "MTA" (o servidor SMTP) el que envie efectivamente el e-mail e imponga todo tipo de restricciones si las hace además de crear los "log's" de registro de toda la transacción para entregar el e-mail donde podrías ver cualquier tipo de problema.

Con un "if(mail(.....))" sólo vas a ver que PHP entregó el e-mail al MTA .. pero de ahí a que efectivamente el MTA lo entregue a su destinatario es otro tema que se escapa a PHP.

Un saludo,
  #5 (permalink)  
Antiguo 20/12/2005, 12:35
 
Fecha de Ingreso: octubre-2005
Mensajes: 778
Antigüedad: 18 años, 6 meses
Puntos: 1
Como resolver porque MTA no envia los mensajes enviados por la funcion mail()?

Mi programa que envia correos es kmail de KDE. Este programa si envia los mensajes a través de smtp.

Por lo tanto, esto si funciona, pero no se porque mail() o MTA no los envia?

como revisar las restricciones de MTA (o servidor SMTP) para enviar mensajes?

Que son "log's" de registro?
  #6 (permalink)  
Antiguo 20/12/2005, 12:38
 
Fecha de Ingreso: octubre-2005
Mensajes: 778
Antigüedad: 18 años, 6 meses
Puntos: 1
Como verificar que el servidor tiene activado mail()?

Que es atochamiento del servidor y porque retrasa el envio de mensajes?
  #7 (permalink)  
Antiguo 20/12/2005, 12:54
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
<? phpinfo(); ?>

ve a la parte donde dice SMTP y si sale algo como mail.dominio.com ya esta...

si no tienes un servidor SMTP .. pues instalate el Merak Mail Server.. es muy bueno y facil de manejar....

NO lo descarges del emule, mejor compralo... no cuesta mucho...

Saludos.
  #8 (permalink)  
Antiguo 20/12/2005, 13:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jglorenzosqr
Mi programa que envia correos es kmail de KDE. Este programa si envia los mensajes a través de smtp.
Tienes una confusion entre lo que es un MTA de lo que es un MUA. "Kmail" es un "MUA" o dicho de otra forma "cliente" de correo o .. programa para administrar correo.

Revisa estos conceptos en:
http://es.wikipedia.org/wiki/MTA
http://es.wikipedia.org/wiki/MUA

Cita:
Por lo tanto, esto si funciona, pero no se porque mail() o MTA no los envia?
Como te comenté .. tu "kmail" es un "cliente" para gestionar e-mail con cuentas tipo POP y/o SMTP (minimo) .. En la configuración de la cuenta de correo que uses en "kmail" ahí se indica el servidor SMTP real que estás usando .. tal vez el de tu proveedor u otro servidor .. algo tipo: mail.isp.tal o similar.

La mayoría de servidores SMTP hoy por hoy de tus ISP's requieren autentificación (contraseña/usario) .. los mismos datos que indicas en "kmail" en esa cuenta de correo. La función mail() de PHP por si piensas usar esa cuenta de correo (con ese servidor SMTP concreto) NO permite autentificación. En su defecto tendrías que usar alguna classe como por ejemplo:

PHP Mailer
http://phpmailer.sourceforge.net

Que SI que permiete indicar "autentificación" contra un servidor SMTP cualquiera que la requiera.

Para que te hagas una idea .. la función "Mail()" de PHP no sería más que un "MUA" pero en programación PHP. De por sí "PHP" con su función mail() NO envia el e-mail definitivamente a su destinatario.

Cita:
como revisar las restricciones de MTA (o servidor SMTP) para enviar mensajes?
Tendrías que ver el servidor SMTP o MTA (sendmail.. ) o el que uses y verificar SU configuración.

Cita:
Que son "log's" de registro?
Toda actividad de un servidor (como pueda ser SMTP) suele quedar registrada con todo lo que hizo . .así es "facil" ver si algo falla y por qué.

Un saludo,
  #9 (permalink)  
Antiguo 20/12/2005, 13:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jglorenzosqr
Que es atochamiento del servidor y porque retrasa el envio de mensajes?
Atochamiento sería .. que "colapsa" el servidor .. que tiene muchos e-mails que enviar .. .vamos .. que no puede entregar los e-mails según son recibidos.

Muchos otros MTA's no envian los e-mails según los reciben .. sino que programan el envio de todos los recibidos hasta cierta hora o por cantidad .. y ahí los envian. Eso es una opción que el que Administre ese MTA así lo configurará a su gusto. No depende en absoluto de PHP ni se puede controlar a traves de este .. a lo sumo tu puedes "marcar" un mensaje como "importante" (si manejas bien las cabeceras de e-mail) .. de ahí a como lo atienda el MTA en cuestión ya es otro tema.

Un saludo,
  #10 (permalink)  
Antiguo 21/12/2005, 06:45
 
Fecha de Ingreso: octubre-2005
Mensajes: 778
Antigüedad: 18 años, 6 meses
Puntos: 1
Aqui le envio parámetros de correo de configuración de phpinfo() en mi maquina :

CONFIGURATION
PHP CORE
Directive Local Value Master Value

sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
SMTP localhost localhost
smtp_port 25 25

No aparece ningún valor como "mail.dominio.com". Mi servidor de correo es MTA y SMTP.
  #11 (permalink)  
Antiguo 22/12/2005, 12:53
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 2 meses
Puntos: 11
creo que en PHP.INI debes ponerlo...
SMTP: mail.dominio.com
  #12 (permalink)  
Antiguo 22/12/2005, 13:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero a ver . .tu servidor de correo SMTP cual es? . .en que Sistema Operativo.

Es sendmail? .. o cual?

Se te mencionó usar como "SMTP" algo tipo "mail.domino.tal" por qué eso sería equivalente a tu "localhost" .. pero el servidor SMTP de un posible ISP tuyo. "localhost" significa que el servidor SMTP que usará PHP será el que pueda estar instalado en ese mismo Servidor, si ahí no tienes ningún servidor de correo SMTP (o sendmail directo) PHP no podrá enviar sus e-mails.

Por otro lado .. si PHP no dá ningún mensaje de error al entregar el e-mail .. revisa los log's de tu servidor de correo y mira como se ejecuta el envio de los e-mails .. ahí veras mensajes de error más exactos que lo que PHP pueda darte.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:44.