Foros del Web » Programando para Internet » PHP »

envio de mail desde formulario web no llega

Estas en el tema de envio de mail desde formulario web no llega en el foro de PHP en Foros del Web. tengo el codigo que pongo mas abajo, me pasa que el mensaje que envio desde el formulario de la web me sale que fue enviado ...
  #1 (permalink)  
Antiguo 18/12/2013, 17:24
 
Fecha de Ingreso: agosto-2005
Mensajes: 97
Antigüedad: 18 años, 8 meses
Puntos: 1
envio de mail desde formulario web no llega

tengo el codigo que pongo mas abajo, me pasa que el mensaje que envio desde el formulario de la web me sale que fue enviado exitosamente, pero no me llega a la bandeja de entrada, he probado enviando e-mails desde esa cuenta y envio y recibo mails sin problema, he buscado ayuda en Internet y ninguna me soluciona el problema, el problema surge cuando se envia el mensaje desde el formulario de la web.

HTML:

<div id="formulario">
<form class="contact_form" method="post" action="enviar.php" id="form" >

<legend>Complete el siguiente formulario</legend>

<div class="campos-izquierda">

<label class="texto" for="nombre">Nombre</label>

<input name="nombre" id="nombre" class="texto" type="text" size="30" placeholder="Nombre" value="" required/>


<label class="texto" for="email">E-Mail</label>
<input name="email" id="email" class="texto" type="email" size="30" placeholder="E-mail" value="" required />

<label class="texto" for="asunto">Asunto</label>
<input name="asunto" id="asunto" class="texto" type="text" size="30" placeholder="Asunto" value="" required />

</div>

<div class="campos-derecha">
<label for="comentario">Mensaje</label>
<textarea name="mensaje" id="comentario" cols="35" rows="5" required></textarea>
<button type="submit" name="enviar" id="envio">Enviar</button>

</div>

</form>
</div>


PHP:

<?php
$errores = "";
if (isset($_POST['nombre'], $_POST['email'], $_POST['mensaje'])) {
if ($_POST['nombre'] != "") {
$_POST['nombre'] = filter_var($_POST['nombre'], FILTER_SANITIZE_STRING);
if ($_POST['nombre'] == "") {
$errores .= 'Introduzca un nombre correcto.<br/><br/>';
}
} else {
$errores .= 'Introduzca su nombre.<br/>';
}
if ($_POST['email'] != "") {
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errores .= "$email <strong>NO</strong> es una dirección correcta.<br/><br/>";
}
} else {
$errores .= 'Por favor introduze un dirección de correo.<br/>';
}
if ($_POST['asunto'] != "") {
$_POST['asunto'] = filter_var($_POST['asunto'], FILTER_SANITIZE_STRING);
if ($_POST['asunto'] == "") {
$errores .= 'Introduzca un asunto correcto.<br/><br/>';
}
} else {
$errores .= 'Introduzca el asunto.<br/>';
}
if ($_POST['mensaje'] != "") {
$_POST['mensaje'] = filter_var($_POST['mensaje'], FILTER_SANITIZE_STRING);
if ($_POST['mensaje'] == "") {
$errores .= 'Por favor inserte un mesaje a enviar.<br/>';
}
} else {
$errores .= 'Por favor inserte un mesaje a enviar.<br/>';
}
if ($errores == "") {
$mail_to = '[email protected]';
$subject = 'Contacto en sitio web';
$nombre = 'De: ' . $_POST['nombre'] . "\n";
$txt = 'Asunto: ' . $_POST['asunto'] . "\n";
$txt .= 'Email: ' . $_POST['email'] . "\n";
$txt .= "Mensaje:\n" . $_POST['mensaje'] . "\n";

$cabeceras = "From: $email\n"
. "Reply-To: $email\n";


mail($nombre, $mail_to, $subject, $txt, $cabeceras);
header("Location: gracias.html");
} else {
echo '<div style="color: red">' . $errores . '<br/></div>';
}
}

exit;
  #2 (permalink)  
Antiguo 19/12/2013, 10:40
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: envio de mail desde formulario web no llega

primero descarta que se halla enviado bien el mail.
Código PHP:

$envioOK 
mail($nombre$mail_to$subject$txt$cabeceras);
if(
$envioOK){
 
header("Location: gracias.html");
}
else{
 echo 
'<div style="color: red">Error Envio <br/></div>'

Igual, una buena practica seria usar una libreria como por ejemplo phpmailer.

Etiquetas: formulario, html, llega, 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 06:59.