PHP - Formulario PHP

   
Vista:

Formulario PHP

Publicado por Asier (4 intervenciones) el 24/09/2013 10:46:28
Hola a todos y gracias por vuestra ayuda de antemano.
Estoy preparando una página web y quiero meter en ella un formulario para recibir los datos en mi correo.
El caso es que el que tengo diseñado no funciona correctamente, ya que no me envia los datos a mi buzón.

Os pongo el código HTML del formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<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>
<label for="comments">¿Qué quieres decirnos?: </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>

Aquí os dejo el código PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
if(isset($_POST['email'])) {
 
$email_to = "xxxxxxx@gmail.com";
$email_subject = "Maikasier 6914";
 
if(!isset($_POST['first_name']) ||
!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 .= "Comentarios: " . $_POST['comments'] . "\n\n";
 
 
 
$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!";
}
?>

Un saludo y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Formulario PHP

Publicado por xve (5515 intervenciones) el 24/09/2013 10:55:28
Hola Asier, interpreto que los datos llegan correctamente al código php...

El problema puede estar, en que no siempre funciona la instrucción mail() correctamente... Esta instrucción utiliza la configuración del archivo php.ini, y si no esta bien configurado, los servidores como gmail, hotmail, ..., los desestiman porque no se envian desde el servidor de correo por el cual se envia el mensaje.

Por ejemplo, si lo envies desde la cuenta tunombre@dominio.com, gmail espera que se envié desde el servidor de correo del dominio: dominio.com
Si no es así, automáticamente es desestimado dicho mensaje.

Para que esto no te suceda, tienes que realizar el envio desde el mismo servidor de correo, y eso se realiza mediante smtp...
http://www.lawebdelprogramador.com/codigo/buscar.php?opc=1&id=71&charSearch=smtp

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formulario PHP

Publicado por Asier (4 intervenciones) el 24/09/2013 11:14:17
Ok.
Entiendo que debo configurar el archivo "sendSMTP.php" con los datos del servidor donde quiero recibir los datos del formulario.
Lo que no entiendo es cuando se recogen los datos introducidos por el usuario para remitirlos por e-mail.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Formulario PHP

Publicado por xve (5515 intervenciones) el 24/09/2013 16:44:33
Hola Asier, en el ejemplo al que hago referencia se visualiza correctamente, no?

1
2
3
4
5
6
7
// Array con el Listado de todos los usuarios donde enviar el mensaje
// Contiene 'nombre de usuaruio'=>'direccion de correo'
$rcpt=array('nombre1'=>'usuario@undominio.com','nombre2'=>'otrousuario@otrodominio.com');
//Titulo del mensaje
$subj="subject text\n";
//Cuerpo del mensaje
$body="Body Line 1\nBody Line 2";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Formulario PHP

Publicado por Asier (4 intervenciones) el 05/11/2013 18:59:13
Sigo intentando que mi formulario envie los correos. Ya me queda claro que la funcion mail() no me sirve. Utilizo SMTP.
Lo que no se es como llamar a sendSMTP.php desde mi formulario.php.
Así mismo, me ocurre que aunque configuro el $host=gmail.com en el puerto 25, no se si esta configuración es correcta tampoco.

Por otro lado, utilizo un servidor WAMP antes de subir a un hosting mi página, ¿puede ser que este servidor este influyendo en que smtp no funcione?

Muchas muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Formulario PHP

Publicado por xve (5515 intervenciones) el 05/11/2013 20:09:14
Hola Asier, par enviar por gmail, si utilizas SSL el puerto es el 465.

Aquí tienes las instrucciones de como configurarlo
https://support.google.com/mail/answer/78775?hl=es
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar