Autor Tema: Enviar e-mail desde formulario php con el contenido del formulario  (Leído 48126 veces)

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Hola Hola

Quiero hacer un formulario en php cuyo contenido se envíe directamente a mi correo electrónico.

He intentado hacerlo por mi cuenta pero al no tener ni idea copié un código de un tutorial... tenía buena pinta.

Pero claro... no funcionó, no me llega el mail a mi bandeja.

También he leído acerca de la creación de un formulario del tipo que yo deseo, pero es que no me queda claro los recursos previos que necesito (correo en el servidor, etc.).

Ya sé que es un palo que venga de vez en cuando a preguntar tonterías, pero... se agradecen las respuestas.

Gracias.


FORMULARIO:

Código: [Seleccionar]
<form name="frmContacto" method="post" action="sendbymail.php">
<table width="500px">
<tr>
<td>
<label for="first_name">Nombre: *</label>
</td>
<td>
<input type="text" name="first_name" maxlength="50" size="25">
</td>
</tr>
<tr>
<td valign="top"">
<label for="last_name">Apellido: *</label>
</td>
<td>
<input type="text" name="last_name" maxlength="50" size="25">
</td>
</tr>
<tr>
<td>
<label for="email">Dirección de E-mail: *</label>
</td>
<td>
<input type="text" name="email" maxlength="80" size="35">
</td>
</tr>
<tr>
<td>
<label for="telephone">Número de teléfono:</label>
</td>
<td>
<input type="text" name="telephone" maxlength="25" size="15">
</td>
</tr>
<tr>
<td>
<label for="comments">Comentarios: *</label>
</td>
<td>
<textarea name="comments" maxlength="500" cols="30" rows="5"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right">
<input type="submit" value="Enviar">
</td>
</tr>
</table>
</form>


SCRIPT:

Código: [Seleccionar]
<?php
if(isset($_POST['email'])) {

// Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
$email_to "destinatario@sudominio.com";
$email_subject "Contacto desde el sitio web";

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

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['first_name'] . "\n";
$email_message .= "Apellido: " $_POST['last_name'] . "\n";
$email_message .= "E-mail: " $_POST['email'] . "\n";
$email_message .= "Teléfono: " $_POST['telephone'] . "\n";
$email_message .= "Comentarios: " $_POST['comments'] . "\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!";
}
?>
« Última modificación: 28 de Junio 2015, 12:08 por César Krall »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2052
    • Ver Perfil
Re:enviar e-mail desde formulario php
« Respuesta #1 en: 25 de Junio 2015, 21:54 »
ola urka, no es ninguna molestia que preguntes lo que quieras, para eso están los foros. Ahora bien, sería de agradecer que además de preguntar respondas también a personas que hagan preguntas, así colaboras. Puedes pensar que quizás no tengas conocimientos suficientes para responder, pero piensa que siempre hay gente con menos conocimientos que tú y que aquí estamos todos para ayudar y aprender, no se pide a nadie que sea un experto para responder en los foros.

En cuanto a la pregunta, lo primero que tienes que tener en cuenta es dónde incluir el envío del formulario. Como tu formulario envía a sendbymail.php es en ese archivo donde debes incluir el envío del correo electrónico (además lo normal sería que dentro de ese archivo incluyas un mensaje de confirmación de envío del formulario).

Lo primero que debes probar es que tu servidor ejecute la función mail correctamente. Hay algunos servidores que tienen establecidas restricciones sobre esta función. Para probarla basta que en el archivo de destino del formulario incluyas un código como este:

Código: [Seleccionar]
<?php
echo 'Enviando correo';
mail("elcorreodedestino@gmail.com","Aqui el asunto del correo""Hola esto es un correo de prueba");
?>

Si esto no te funciona tienes que solucionar esto antes que nada.

El código que has puesto habría que revisarlo con calma, puede que el error lo tengas en esta línea:

@mail($email_to, $email_subject, $email_message, $headers);

Esa @ que aparece al principio puede estar generando el error.

Saludos

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #2 en: 01 de Julio 2015, 12:55 »
Hola, gracias por responder.

1- En primer lugar decirte que después de haber visto varios códigos me lié un poco... y no los había probado de forma adecuada.

Ahora sí lo he hecho y aún así no me funciona, pero lo revisaré bien.

2- Segundo, he modificado el código siguiendo tus consejos, pero sigo sin recibir el correo en mi bandeja, pero como dije antes seguiré probando.

3- Gracias por animarme a colaborar con los novatos, de vez en cuando echo un vistazo al foro a ver si puedo ser de ayuda.

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #3 en: 01 de Julio 2015, 12:59 »
Hola.

He probado a escribir en un archivo "prueba formulario 1.php" el siguiente código:

Código: [Seleccionar]
<?php
echo 'Enviando correo';
mail("elcorreodedestino@gmail.com","Aqui el asunto del correo""Hola esto es un correo de prueba");
?>

No me llega ningún e-mail, así que supongo que el servidor de 000webhost no me lo permite.

Saludos.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2052
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #4 en: 01 de Julio 2015, 13:08 »
Hola, en el nombre de archivo no debe haber espacios.

prueba formulario 1.php no es un nombre válido, en cambio prueba_formulario_1.php sí es un nombre válido.

Además en la dirección de destino hay que poner un correo electrónico válido, en caso contrario no llegará a ningún lado. También hay que comprobar la carpeta de spam porque puede que el correo se vaya a la carpeta de spam.

Yo he probado tanto el código anterior como este que te pongo a continuación y ambos me han funcionado (escribiendo datos reales de correos):

Código: [Seleccionar]
<?php
echo 'Enviando correo';
$to "aquiuncorreo@aprenderaprogramar.com";
$subject "Correo en prueba";
$txt "Hola es un placer saludar desde el correo en pruebas!";
$headers "From: aquiotrocorreo@ejemplo.com" "\r\n" .
"CC: yaquiotrocorreocomocc@aprenderaprogramar.com";
mail($to,$subject,$txt,$headers);
?>

Saludos

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #5 en: 03 de Julio 2015, 07:43 »
Hola otra vez.

He probado el código de Alex Rodríguez, cambiando el e-mail por el mío personal, pero no me llega nada... ya he esperado bastante.

¿Será que 000webhost no me lo permite?

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #6 en: 03 de Julio 2015, 08:21 »
Bueno bueno bueno... ahora me ha llegado el correo de prueba usando el código de Alex.

Me ha llegado sólo a gmail, supongo que hotmail no permite la llegada de estos correos.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2071
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #7 en: 03 de Julio 2015, 15:21 »
Hola, lo más probable es que en hotmail lo tengas en la carpeta de spam. Saludos.
Responsable de departamento de producción aprenderaprogramar.com

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #8 en: 04 de Julio 2015, 19:23 »
Hola, lo más probable es que en hotmail lo tengas en la carpeta de spam. Saludos.

Que va, ni siquiera eso. -_-

URKA84

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 90
    • Ver Perfil
Re:Enviar e-mail desde formulario php con el contenido del formulario
« Respuesta #9 en: 04 de Julio 2015, 19:24 »
Se me había olvidado:

Gracias por vuestras respuestas. Me han sido muy útiles.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".