Foros del Web » Programando para Internet » PHP »

Función mail no envía correos a clientes de hotmail u outlook

Estas en el tema de Función mail no envía correos a clientes de hotmail u outlook en el foro de PHP en Foros del Web. Hola amigos tengo el problema de que tengo un formulario, en dicho formulario solo tengo un input de tipo mail (HTML5) y un botón submit, ...
  #1 (permalink)  
Antiguo 14/10/2014, 19:17
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años
Puntos: 2
Pregunta Función mail no envía correos a clientes de hotmail u outlook

Hola amigos tengo el problema de que tengo un formulario, en dicho formulario solo tengo un input de tipo mail (HTML5) y un botón submit, cuando escribo la dirección de correo y hago clic en el botón dicho envía la dirección escrita y lo envía a un archivo php el cual es el encargado de enviar la información que necesito, la cosa es que si pruebo en gmail, yahoo u otra cuenta se envía pero en hotmail u outlook no, este es mi archivo php:

Código PHP:
Ver original
  1. include("../Sesion/verificar.php");
  2.     include("../Funciones/funciones.php");
  3.     include("../Conexion/conexion.php");
  4.     global $conexion;
  5.     $idperfil = mysqli_real_escape_string($conexion, $_GET['id']);
  6.     $consulta = mysqli_query($conexion, "SELECT * FROM PerfilPuesto WHERE IdPuesto = '".$idperfil."'");
  7.     $fila = mysqli_fetch_assoc($consulta);
  8.     $email = mysqli_real_escape_string($conexion, $_POST['email']);
  9.     $elUsuario = mysqli_query($conexion, "SELECT IdUsuario FROM PerfilActivo WHERE IdPuesto = '".$idperfil."'");
  10.     $CodUsuario = mysqli_fetch_array($elUsuario);
  11.     $DatosUsuario = mysqli_query($conexion, "SELECT Nombres, Apellidos FROM Usuarios WHERE IdUsuario = '".$CodUsuario['IdUsuario']."'");
  12.     $usuario = mysqli_fetch_array($DatosUsuario);
  13.     if($email != null)
  14.     {
  15.         if(preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/' ,$email))
  16.         {
  17.             $url = "http://manueldardon.net/Suministra/Empleos/index.php?id=".$idperfil;
  18.             $destinatario = $email;
  19.             $titulo="PROCESO DE RECLUTAMIENTO Y SELECCION";
  20.             $mensaje = '
  21.             <html>
  22.             <head>
  23.               <title>PROCESO DE RECLUTAMIENTO Y SELECCION</title>
  24.               <meta charset="utf-8">
  25.             </head>
  26.             <body>
  27.                 <table align="center" width="800">
  28.                     <tr>
  29.                         <td align="center"><h1 style="color: #385EA7; font-weight: bold">INSTRUCCIONES DE SOLICITUD DE EMPLEO<br />Y PRUEBAS ON-LINE</h1></td>
  30.                     </tr>
  31.                     <tr>
  32.                         <td align="center"><h2 style="color: #FF0000; text-decoration: underline; font-weight: bold">Importante de leer</h2></td>
  33.                     </tr>
  34.                     <tr>
  35.                         <td style="text-align: justify">Agradecemos su interés en aplicar a un puesto de trabajo con Suministra, con el objetivo de conocer más acerca de sus conocimientos, experiencia, habilidades y personalidad, le solicitamos que complete la información que se le solicitara a través de esta aplicación en línea.</td>
  36.                     </tr>
  37.                     <tr>
  38.                         <td style="text-align: justify">
  39.                             <h3>Aspectos Importantes</h3>
  40.                             <ul>
  41.                                 <li>Complete la solicitud de empleo con toda la información, ya que esta sustituye a la solicitud impresa, al ser citado a entrevista ya no deberá llenar más formularios.</li>
  42.                                 <li>las únicas personas que podrán ver su información es Suministra y la empresa interesada en su perfil.</li>
  43.                                 <li>Conteste las pruebas psicométricas con la mayor sinceridad posible, no hay respuestas buenas o malas, cada persona tiene una personalidad diferente la cual nos interesa conocer para ofrecerle un puesto adecuado a su perfil.</li>
  44.                             </ul>
  45.                             <h3>Recursos requeridos</h3>
  46.                             <ul>
  47.                                 <li>Es importante que se encuentre en un ambiente tranquilo y libre de distracciones.</li>
  48.                                 <li>El tiempo de aplicación de pruebas oscila entre 25 minutos a 2 horas, esto dependerá del puesto al que aplique.</li>
  49.                                 <li>Es recomendable que complete la Solicitud de Empleo y Pruebas psicométricas desde una computadora de escritorio o laptop.</li>
  50.                             </ul>
  51.                             <h3>Iniciar proceso</h3>
  52.                             Si, está listo para iniciar con el proceso y leyó los aspectos importantes arriba descritos por favor presione <a href="'.$url.'" target="_blank">aquí</a>
  53.                         </td>
  54.                     </tr>
  55.                     <tr>
  56.                         <td>Atentamente:</td>
  57.                     </tr>
  58.                     <tr>
  59.                         <td style="text-align: center"><img src="http://manueldardon.net/Suministra/Imagenes/logo.png" width="200" height="64" /></td>
  60.                     </tr>
  61.                     <tr>
  62.                         <td style="text-align: center"><h3>Recurso Humanos <br />PBX 2381-5603</h3></td>
  63.                     </tr>
  64.                     <tr>
  65.                         <td style="text-align: center"><a href="mailto:[email protected]">[email protected]</a><br /><a href="http://www.suministra.net">www.suministra.net</a></td>
  66.                     </tr>
  67.                 </table>
  68.             </body>
  69.             </html>
  70.             ';
  71.             $responder="[email protected]";
  72.             $remite="[email protected]";
  73.             $remitente=$usuario['Nombres']." ".$usuario['Apellidos'];
  74.             // Cabecera que especifica que es un HMTL
  75.             $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
  76.             $cabeceras .= 'Content-type: text/html; charset=utf-8' . "\r\n";
  77.              
  78.             // Cabeceras adicionales
  79.             $cabeceras .= 'From: '.$remitente.'<'.$remite.'>' . "\r\n";
  80.             $cabeceras .= 'Date: '.date("Y-m-d H:i:s"). "\r\n";
  81.             $cabecera .= 'Return-path: '. $remite . "\r\n";
  82.             $cabecera .= 'Reply-To: '.$remite . "\r\n";
  83.             $cabecera .= 'X-Mailer: PHP/'. phpversion() . "\r\n";
  84.              
  85.             // enviamos el correo!
  86.             mail($destinatario, $titulo, $mensaje, $cabeceras);
  87.             header("location: ../Administracion/perfilactivo.php?id=".$idperfil);
  88.         }
  89.         else
  90.         {
  91.             header("location: ../Administracion/perfilactivo.php?id=".$idperfil);
  92.         }
  93.     }
  94.     else
  95.     {
  96.         header("location: ../Administracion/perfilactivo.php?id=".$idperfil);
  97.     }

Alguna idea???
  #2 (permalink)  
Antiguo 14/10/2014, 19:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Función mail no envía correos a clientes de hotmail u outlook

Cita:
Alguna idea???
Es fácil: php no es un servidor de correos.

Por lo tanto no es responsabilidad de PHP que lleguen o no lleguen los correos que mandas con mail() porque sencillamente php no es un servidor de correos.

Necesitas configurar correctamente tu servidor de correos local, o en el mejor de los casos usar un servidor de SMTP externo.

¿Entiendes lo que te trato de explicar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/10/2014, 19:33
Avatar de MLDGATO  
Fecha de Ingreso: marzo-2011
Ubicación: Guatemala
Mensajes: 113
Antigüedad: 13 años
Puntos: 2
Respuesta: Función mail no envía correos a clientes de hotmail u outlook

Gracias por responder entiendo que con mi servidor debo de configurar algo, ahora eso de servidor externo SMTP no lo entiendo pero voy a investigar que es eso, muchas gracias.
  #4 (permalink)  
Antiguo 14/10/2014, 20:20
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Función mail no envía correos a clientes de hotmail u outlook

Salvo que necesites hacer campañas furiosas de marketing no necesitas usar un servidor,
usa phpmailer y caso resuelto
  #5 (permalink)  
Antiguo 15/10/2014, 22:06
 
Fecha de Ingreso: marzo-2003
Ubicación: Gandia, Valencia, España
Mensajes: 55
Antigüedad: 21 años
Puntos: 3
Respuesta: Función mail no envía correos a clientes de hotmail u outlook

El problema seguramente vendrá por las cabeceras de los correos. Normalmente todos enviamos correos con la función mail sin configurarlas y eso hace que salten todas las alarmas de los filtros antispam.

Si además lo haces desde un servidor local, pues existen problemas adicionales como el nombre del host al resolver a la inversa.

Lee un poco de documentación y comprueba la carpeta de Spam de esas cuentas.

En cualquier caso, ten en cuenta que hotmail, outlook, gmail, yahoo y otros proveedores ponen limites diarios al envío de correo si no eres un remitente confiable.
__________________
Sueño luego existo

Etiquetas: mail()
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 07:22.