Foros del Web » Programando para Internet » PHP »

Problema con funcion mail()

Estas en el tema de Problema con funcion mail() en el foro de PHP en Foros del Web. Hola Tengo un formulario de contacto con la funcion mail(), y cuando configuro el correo y envio mail de mi web, solo llegan a gmail, ...
  #1 (permalink)  
Antiguo 01/09/2011, 12:50
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años, 1 mes
Puntos: 2
Problema con funcion mail()

Hola

Tengo un formulario de contacto con la funcion mail(), y cuando configuro el correo y envio mail de mi web, solo llegan a gmail, pero cuando coloco otras cuentas de una empresa supongamos, no llegan los mails.

este es el codigo:

$sheader="From:[email protected]\nReply-To:".$remitente."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";

mail("[email protected]",$asunto,$cuerpo,$sheade r);


Cuando coloco correo de gmail funciona bien, pero otras cuentas no funcionan.

espero me puedan ayudar. Muchas gracias
  #2 (permalink)  
Antiguo 01/09/2011, 13:59
Avatar de lordglazoon  
Fecha de Ingreso: julio-2011
Mensajes: 54
Antigüedad: 12 años, 9 meses
Puntos: 8
Respuesta: Problema con funcion mail()

te fijaste que no quedan en los spam del mail, ya que aveces por tener extensiones no reconocidas los mail de las empresas los pasan spam
  #3 (permalink)  
Antiguo 01/09/2011, 14:01
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problema con funcion mail()

Creo que el tema es un poco mas profundo

[email protected]

esta configurado como el mail que realmente enviá los correos?

De no ser asi, ese es el problema.

Recomiendo que uses alguna librería para mandar mail, y no la función mail a secas.

Saludos
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #4 (permalink)  
Antiguo 01/09/2011, 14:04
 
Fecha de Ingreso: marzo-2011
Mensajes: 51
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Problema con funcion mail()

es al correo donde llegan los correos que son enviados por medio del formulario de contacto.

Entonces si coloco un correo de gmail, llegan perfectos, pero otras cuantas como hotmail o de empresa, simplemente no llegan
  #5 (permalink)  
Antiguo 01/09/2011, 14:11
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: Problema con funcion mail()

Mi amigo , te recomiendo usar la libreria , phpmailer http://phpmailer.worxware.com/ .
  #6 (permalink)  
Antiguo 01/09/2011, 15:55
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: Problema con funcion mail()

Una recomendación, usa ".=" en vez de $variable = $varible.'texto'

Código:
$sheader  = "From:[email protected]\nReply-To:".$remitente."\n"; 
$sheader .= "X-Mailer:PHP/".phpversion()."\n"; 
$sheader .= "Mime-Version: 1.0\n"; 
$sheader .= "Content-Type: text/html";
De todas formas no sé si tendrá que ver, pero el manual dice que si vas añadir varias propiedades a la cabeza que usen "\r\n" y tu sólo usas "\n".
  #7 (permalink)  
Antiguo 01/09/2011, 17:07
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema con funcion mail()

Hola que tal, tengo el mismo problema , al enviar un formulario con mail(), la función devuelve true, pero el formulario no llega al correo, ni a la bandeja de entrada ni a la de correo no deseado.

El hosting es x10Hosting el plan gratuito, (por si alguien lo conoce) y según la documentación y el foro, la función esta disponible, pero los correos no llegan.

las cabeceras que envio son estas :

Código PHP:
$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras  .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
$cabeceras .= "From: ".$_POST['email']." \r\n" .
                        
'Reply-To:'.$_POST['email']. "\r\n" .
                        
'X-Mailer: PHP/' phpversion(); 
un saludo
  #8 (permalink)  
Antiguo 02/09/2011, 07:54
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problema con funcion mail()

volvemos a lo mismo, necesitas configurar que tu correo saliente realmente sea [email protected] , acepta la recomendación de arriba y usa phpmailer

Saludos
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #9 (permalink)  
Antiguo 02/09/2011, 08:46
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: Problema con funcion mail()

@bray podrías poner el código de mail(), vamos, todo el código.

Otra cosa, no hace falta que concatenes cadenas para \r\n, o sea, que de la siguiente forma también te valdría.

Código PHP:
Ver original
  1. $cabeceras  = 'MIME-Version: 1.0\r\n';
  #10 (permalink)  
Antiguo 02/09/2011, 11:32
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Problema con funcion mail()

Correos:
Creo oportuno aclarar los pasos que requieren el envio de un correo.
1.-
La funcion mail, mediante la configuracion del php.ini,
conecta con el servidor de correo que se encaragra de efectivamente enviar el correo. Si lo que se remite va de acuerdo a los standares de formacion de un correo, lo acepta y cierra la conexion.
Se revisa que el correo contenga un destinatario, un asunto, un mensaje y un archivo adjunto (Este ultimo NO indispensable); revisa si la entrega del archivo adjunto se conforma con los standares aceptados por todos los servidores de correo que operan bajo el protocolo SMTP y utilizan principalmente el puerto 25.
Ojo: si el servidor lo recibe Y ACEPTA; tu codigo lo da como enviado exitosamente pero lo que ocurre entre el servidor de correo que enviara tu correo y el servidor destinatario o receptor sale del ambito de tu codigo. Y logicamente podran ocurrir muchas cosas desconocidas para tu codigo.
Ojo: el servidor de correo que recibira tu envio podra aceptarlo bajo multiples situaciones. Ejemplo: permitiendo el relay de tu IP o de tu dominio, permitiendote utilizarlo pero solo bajo normas de autenticacion y con usuario y contraseña. Aqui es medular mensionar que la funcion mail NO esta diseñada para enviar nombre de usuario ni contraseña y sI esta diseñada la classe phpmailer para ello.
2.-
Si el destinatario no existe el servidor de correo final enviara un rechazo en la aceptacion del correo al servidor que envia y tu codigo NO tendra forma de saber lo que exactamente ocurrio, unicamente queda en los logs del servidor de correo que utilizastes para conectar.
3.-
Hace algun tiempo los corrEos llegaban directamente a la bandeja de entrada, pero como consecuencia de los SPAMMERS, hoy dia casi todos los envios llegan a la bandeja de no deseados para que tu los veas y lo deseches o lo reclasifiques como deseado y en el futuro todo envio proveniente de ese dominio se aceptaran como deseado y entraran directamente a la bandeja de entrada.
4.- Es recomendable instalarse o leerse un manual de un servidor de correo profesional para darnos cuenta de la multiplicidad de alternativas de configuracion que puede tener un servidor de correo que oscila entre lo abierto y sujeto a hackers y spammers hasta lo mas restrictivo que combinan cosas, como revision automatica sobre la IP que conecta con bases de datos, revision de viruses con programas especialmente diseñados para ello, como el sistema de puntos y finalmente lo que se llama como greylisting.
5.- Estos comentarios NO pretenden ser exhaustivos sino que deben estimular a la investigacio y busqueda, utilizando los servicios profesionales del buscador google.com
Saludos
Y espero nos ayude
Franco
  #11 (permalink)  
Antiguo 02/09/2011, 14:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Problema con funcion mail()

Finalmente los correos han llegado, debían tener algún problema con el servidor de correo y al final , casi 12 horas mas tarde llegaron las 3, pruebas de envió juntas, no hubo necesidad de utilizar ninguna de las clases de envió de emails, ademas he comprobado que a gmail llegan mas rápidamente los correos que ha hotmail.

Cita:
volvemos a lo mismo, necesitas configurar que tu correo saliente realmente sea [email protected] , acepta la recomendación de arriba y usa phpmailer

Saludos
supongo que te referias al correo del que envío el mensaje original :P el mio es otro jajajajaj. Seguiré tu consejo y mirare la clase phpmailer.

gracias por las respuestas y un saludo

Última edición por bray; 02/09/2011 a las 14:47 Razón: corregir etiquetas

Etiquetas: funcion, html, formulario
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 06:53.