PHP Mail | No llegan los correos del formulario a mi servidor de correo

publicado por: Anonymous

Quisiera saber si hay alguna forma de hacer que llegue el correo que envío desde un formulario a un correo de mi empresa.

He intentado con mi correo de gmail y funciona correctamente. Pero envío desde otro correo y no llegan…

Mi formulario:

<form method="post" action="php/enviarmails/enviarContactos.php" >
    <div class="fields">
        <div class="field half" >
            <label for="nombre" >Nombre</label>
            <input type="text" name="nombre" id="nombre" />
        </div>
        <div class="field half">
            <label for="email" >Correo Electronico</label>
            <input type="text" name="email" id="email" />
        </div>
        <div class="field half">
            <label for="celular" >Celular</label>
            <input type="text" name="celular" id="celular" />
        </div>
        <div class="field half">
            <label for="empresa" style="color:#46A1BE">Empresa</label>
            <input type="text" name="empresa" id="empresa" />
        </div>
        <div class="field">
            <label for="mensaje" style="color:#46A1BE">Escriba un mensaje</label>
            <textarea name="mensaje" id="mensaje" rows="6" ></textarea>
        </div>
    </div>
    <ul class="actions">
        <li><input type="submit" value="Enviar Mensaje" class="primary" /></li>
        <li><input type="reset" value="Limpiar"  /></li>
    </ul>
</form>

Mi código php:

<?php  
    $texto_mail=$_POST["mensaje"];
    $nombre=$_POST["nombre"];
    $email=$_POST["email"];
    $celular=$_POST["celular"];
    $empresa=$_POST["empresa"];
    $destinatario="[email protected]";
    $asunto="Escribieron en contactos CYGNUS";
    $headers="MIME-Version: 1.0rn";
    $headers.="Content-type: text/html; charset=iso-8859-1rn";
    $headers.="From: Escribieron en la Pagina < [email protected] >rn";
    $exito=mail($destinatario,$asunto,"Correo Electronico " . $email . "<br>" . "Nombre: " . $nombre . "<br>Celular: ". $celular . "<br> Empresa: " . $emrpesa .  "<br> Comentario del mensaje: " . $texto_mail ,$headers);

    if ($exito) {
        header("location: ../../enviadoContactos.html");
    } else {
        echo "Ha ocurrido un error";
    }
?>

La verdad que no sé bien si es mi hosting o el servidor de correo de la empresa la razon por la cual no llegan.

Si tienen algo de experiencia sobre esto se los agradecería.

solución

Eh tenido este problema en el pasado con algunos dominios y se debe a que la función mal de PHP originalmente no cumple con el puntaje mínimo para no ser considerado spam, en algunos casos el mensaje ni siquiera es enviado a bandeja de spam sino que es desechado directamente.

Te recomiendo usar PHPMailer (Disponible en https://github.com/PHPMailer/PHPMailer)

Es la mejor opción, solo crea una cuenta de correo en tu hosting (por ejemplo [email protected]) esta te servirá para configurar tu PHPMailer y al tratarse de un correo enviado por un protocolo y correo existente de seguro que si llegara a todos los destinatarios (o Por lo menos a Spam).

Uso básico.

<?php

require 'PHPMailer-master/PHPMailerAutoload.php';
require 'PHPMailer-master/class.smtp.php';


$mail = new PHPMailer;
$mail->CharSet = "UTF-8";
$mail->isSMTP();      
$mail->SMTPDebug = 0; //ACTIVALO SI QUIERES VER EL DEBIG
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

$mail->Host = $config_notificaciones_defecto_host;  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = $config_notificaciones_defecto_username;                 // SMTP username
$mail->Password = $config_notificaciones_defecto_pasword;                           // SMTP password
$mail->SMTPSecure = $config_notificaciones_defecto_smtpsecure;                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = $config_notificaciones_defecto_puerto;    
$mail->setFrom($config_notificaciones_defecto_fromcorreo, $config_notificaciones_defecto_frondescripcion);
$mail->SMTPKeepAlive = true; // NO CERRAR LA CONEXION HASTA ENVIAR TODOS LOS CORREOS

$mail->Subject = "Bienvenido a MI WEB "; 
$mail->AltBody = 'SOY UN RESUMEN PARA CELULAR';

$mail->Body    ='<!doctype html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title> </title>
</head>
<body style="background: #e4e9f0;">
   SOY UN CORREO
</body>
</html>';

$paquien=$mail_bienvenido_destino;

    $mail->addAddress($paquien, $paquien);
    if (!$mail->send()) {
        echo "Mailer Error (" . str_replace("@", "@", $paquien) . ') ' . $mail->ErrorInfo . '<br />';
        break; //Abandon sending
    }

    // LIMPIARMOS DIRECCION Y ADJUNTOS PARA CONTINUAR
    $mail->clearAddresses();
    $mail->clearAttachments();

?>
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *