¿Cómo recibir un email de contacto desde mi web?

Sinceramente no sé como hacer esto.

Tengo el siguiente formulario

<form action="contacto.php" method="post" class="wow fadeInUp" data-wow-delay="0.6s">
<div class="col-md-6 col-sm-6">
<input type="text" class="form-control" placeholder="Name" name="name">
</div>
<div class="col-md-6 col-sm-6">
<input type="email" class="form-control" placeholder="Email" name="email">
</div>
<div class="col-md-12 col-sm-12">
<textarea class="form-control" placeholder="Message" rows="7" name="message"></textarea>
</div>
<div class="col-md-offset-4 col-md-8 col-sm-offset-4 col-sm-8">
<input type="submit" class="form-control" value="SEND MESSAGE">
</div>
</form>

y contacto.php es

<?
$cuerpo = "Formulario enviado\n"; 
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n"; 
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n"; 
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["message"] . "\n";
mail("[email protected]","Formulario recibido",$cuerpo);
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
?>

Quiero comentarles que yo no entiendo mucho de php. ¿Qué es lo que me falta? ¿Cómo le digo a mi servidor donde esta alojada mi web que envié el correo a la cuenta de correo?

Es lo único que me estaría faltando para terminar con mi web. Espero su ayuda. Y sinceramente no quiero usar foxyform y demás porque me hace muy lenta la página y no queda con e diseño de esta.

Respuesta

Entiendo las cosas así:

En el formulario lees tres variables:

Name, email y message

Entonces debes hacer lo siguiente:

$to = "[email protected]";
//$to es la direccion a la que vas a enviar el mensaje
$comenta = nl2br($_POST['message']);
$name= $_POST['name'];
$email= $_POST['email'];
//Coloca un asunto a tu mensaje
$asunto = "Lo que desees ";
$subject = $asunto;
$bound_text = "----*%$!$%*";
$bound = "--".$bound_text."\r\n";
$bound_last = "--"$bound_text."--\r\n";
// enseguida vas a colocar tu correo del servidor
// por ejemplo:   [email protected]
//asi:
$ema = "[email protected]";
$headers = "From: ".$ema.".\r\n";
$headers .= "MIME-Version: 1.0\r\n" . 
"Content-Type: multipart/mixed; boundary=\"$bound_text\""."\r\n" ;
$message = " you may wish to enable your email program to accept HTML \r\n".
$bound; 
$message .= 
'Content-Type: text/html; charset=UTF-8'."\r\n".
'Content-Transfer-Encoding: 7bit'."\r\n\r\n".
'
aqui va el cuerpo del mensaje que vas a enviar....
por ejemplo:
el Sr(a)'.$name.' con el email: '.$email'.
<br>    esto salta linea
nos envia el siguiente mensaje; <br><br>
'-$comenta.'
'."\n\n". 
$bound;
$file = file_get_contents("");
$message .= ""
.$bound_last; 
$sent = mail($to, $subject, $message, $headers) ;

y listo.... mas claro no canta un gallo!

Ante todo quiero agradecerte por ayudarme, GRACIAS.
Copie el código que me pasaste y modifiqué lo que me comentas.

Ahora te consulto al darle enviar me queda la pagina en blanco. y al verificar si recibí algún correo no hay nada.
Me decís que coloque el correo de mi servidor. ¿Cómo identifico cuál sería?

ese dato lo puedo sacar da la información generada por el código 

<?php
phpinfo();
?>

yo probe con los conocidos por mí e incluso con la dirección de la página web. pero nada.

muchas gracias nuevamente

La página queda en blanco porque no la hemos redireccionado a otra página.

Para hacer esto puede ser así:

Echo "<META HTTP-EQUIV='Refresh' CONTENT='0; url=formulario.php'>";

a los 0 segundos te la manda a formulario.php

Seria bueno poner un aviso antes de enviar...

Echo "Mensaje enviado a ".$name." Al email: ".$email;

asì... te envia el mensaje, te avisa y a los 9 segundos redirecciona.

si cambias CONTENT='0; url=formulario.php'>"; el 0 por 3 (por ejemplo) te muestra el mensaje y a los 3 segundos la redirecciona a formulario.php

SiREZ

Sirez, gracias nuevamente. hay algo mal, el mensaje no llega a mi casilla de correo.

mi servidor es smtp.fibertel.com.ar, este iría en $ema. Pero por alguna razón no resuelve el envio de correo es decir es como si envía pero nunca llega.

pensé que era más fácil. Sera la autenticación en el servidor ?

Gracias nuevamente.

Mandanos el código completo. Así miramos a ver que pasa...

php 

<?
$to = "[email protected]";
//$to es la direccion a la que vas a enviar el mensaje
$comenta = nl2br($_POST['message']);
$name= $_POST['name'];
$email= $_POST['email'];
//Coloca un asunto a tu mensaje
$asunto = "Lo que desees ";
$subject = $asunto;
$bound_text = "----*%$!$%*";
$bound = "--".$bound_text."\r\n";
$bound_last = "--".$bound_text."--\r\n";
// enseguida vas a colocar tu correo del servidor
// por ejemplo:   [email protected]
//asi:
$ema = "smtp.fibertel.com.ar";
$headers = "From: ".$ema.".\r\n";
$headers .= "MIME-Version: 1.0\r\n" . 
"Content-Type: multipart/mixed; boundary=\"$bound_text\""."\r\n" ;
$message = " you may wish to enable your email program to accept HTML \r\n".
$bound; 
$message .= 
'Content-Type: text/html; charset=UTF-8'."\r\n".
'Content-Transfer-Encoding: 7bit'."\r\n\r\n".
'
aqui va el cuerpo del mensaje que vas a enviar....
por ejemplo:
el Sr(a)'.$name.' con el email: '.$email.'.
<br>    esto salta linea
nos envia el siguiente mensaje; <br><br>
'-$comenta.'
'."\n\n". 
$bound;
$file = file_get_contents("");
$message .= ""
.$bound_last; 
$sent = mail($to, $subject, $message, $headers) ;
Echo "<META HTTP-EQUIV='Refresh' CONTENT='2; url=index.html'>";
Echo "Mensaje enviado a ".$name." Al email: ".$email;
?>

form 

<form action="contacto.php" method="post" class="wow fadeInUp" data-wow-delay="0.6s">
                    <div class="col-md-6 col-sm-6">
                        <input type="text" class="form-control" placeholder="Name" name="name">
                    </div>
                    <div class="col-md-6 col-sm-6">
                        <input type="email" class="form-control" placeholder="Email" name="email">
                    </div>
                    <div class="col-md-12 col-sm-12">
                        <textarea class="form-control" placeholder="Message" rows="7" name="message"></textarea>
                    </div>
                    <div class="col-md-offset-4 col-md-8 col-sm-offset-4 col-sm-8">
                        <input type="submit" class="form-control" value="SEND MESSAGE">
                    </div>
                </form>

Un email se manda de una cuenta de correo a otra cuenta.

Usted debe crear una cuenta de correo en su servidor. Por ejemplo: [email protected]

Te pregunto: que es

$ema = "smtp.fibertel.com.ar";

1 respuesta más de otro experto

Respuesta
3

Te paso el código que debes modificar en el archivo PHP:

¿

<?php
if(isset($_POST['email'])) {

// Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
$email_to = "[email protected]";
$email_subject = "Contacto desde el sitio web";

// Aquí se deberían validar los datos ingresados por el usuario
if(!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['message'])) {

echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />";
echo "Por favor, vuelva atrás y verifique la información ingresada<br />";
die();
}

$email_message = "Detalles del formulario de contacto:\n\n";
$email_message .= "Nombre: " . $_POST['name'] . "\n";
$email_message .= "E-mail: " . $_POST['email'] . "\n";
$email_message .= "Comentario: " . $_POST['message'] . "\n\n";

// Ahora se envía el e-mail usando la función mail() de PHP
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);

echo "¡El formulario se ha enviado con éxito!";
}
?>

No olvides valorar las respuestas, ¿ok?

S a l u d o s !!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas