Foros del Web » Programando para Internet » PHP »

Enviar formulario por email (Xampp)

Estas en el tema de Enviar formulario por email (Xampp) en el foro de PHP en Foros del Web. Hola a todos. LLevo varios dias dando vueltas por los foros para ver si consigo que me funcione un formulario que quiero poner en mi ...
  #1 (permalink)  
Antiguo 21/06/2008, 05:34
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Enviar formulario por email (Xampp)

Hola a todos. LLevo varios dias dando vueltas por los foros para ver si consigo que me funcione un formulario que quiero poner en mi web en php.

El sistema operativo del servidor es una ubuntu server, y el servidor esta instalado con el paquete Xampp, que se supone que te instala sendmail por defecto para este tipo de cosas.

Tengo una de mis webs alojada en mi server local, y en ella hay un formulario que quiero que los usuarios rellenen y que sea enviado a un correo externo tipo [email protected], pero no doy con el código correcto. Tampoco se si tengo que configurar algo en el php.ini, pq ya he visto numerosas soluciones en las que se cuenta como habilitar el SMTP, pero claro, al estar bajo linux, no se que hacer.

El formulario es un html en el que se llama a un script php. Cuando lo ejecuto, me dice que el mail se ha enviado correctamente, pero nunca llega a la carpeta de entrada de mi correo E de gmail.

No se si lo que pretendo se puede hacer o no, ni como, pero agradeceré de corazón toda la ayuda prestada.

Cuelgo el último código que he probado:
formulario.html
Código:
<html> 
<head> 
<title>Formulario</title> 
</head> <body> 
<FORM ACTION="procesa.php" name="formulario" METHOD="post" onsubmit="return emailCheck(this.email.value);"> Asunto (título) del envío: 
<input type="text" maxlength="40" size="35" name="asunto"><br> 
Nombre y Apellido: <input type="text" maxlength="40" size="35" name="nombre"><br> 
Correo electrónico (E-mail): <input type="text" maxlength="31" size="35" name="email"><br> 
<input type="submit" value="Enviar" onfocus="this.blur()"> 
<input type="reset" value="Borrar" onfocus="this.blur()"> </FORM> 
</body>
 </html>

procesa.php

Código:
<?php

//E-mail en donde se recibirá el Formulario.
//puedes poner Varios Email separados por coma ","

$recipiente = "[email protected]";

//URL de tu Sitio Web.

$sw = "http://mi_sitio";

//Mensaje que te llegará al Correo, con los datos ingresados.

$msg = " $email envia a través del formulario de mi_sitio lo siguiente:

Nombre: $nombre
E-mail: $email";

//Comprobamos que campos del formulario se encuentren completos.

if(empty($asunto)){
echo "<p align=center><font face=tahoma size=2><b><font color=#FF0000>Error:</font> No has
seleccionado un Asunto.</b></font></p>";
}
if (empty($nombre)){
echo "<p align=center><font face=tahoma size=2><b><font color=#FF0000>Error:</font> No has
ingresado Nombre y Apellido.</b></font></p>";
}
if(empty($email)){
echo "<p align=center><font face=tahoma size=2><b><font color=#FF0000>Error:</font> No has
ingresado tu E-mail.</b></font></p>";
}
else{

//Limpiamos de posibles ataques.

$comentario = ereg_replace("rn","<br>", $comentario);

$nombre = htmlentities($nombre);
$email = htmlentities($email);


//Enviamos el E-mail con todos los datos.

mail("$recipiente", "$asunto", "$msg", "FROM: $email");

//Damos las gracias al visitante por contactarnos.

echo"<font face=tahoma size=2>
<p align=center>Gracias por enviarnos los datos de: <b>$nombre</b>.
<p align=center>Responderemos tu envio en un plazo de 24 a 48 horas.<br><br>
<br>
<br>
<br>
<br>
</p>
<p align=center><br>
<a href=$sw><b>Regresar a mi_sitio</b></a>.</p>";
}
?>
  #2 (permalink)  
Antiguo 21/06/2008, 06:06
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Enviar formulario por email (Xampp)

Hola,

prueba a quitarle las comillas de las variables en la funcion mail

mail($recipiente, $asunto, $msg, $email);

Un saludo
  #3 (permalink)  
Antiguo 21/06/2008, 06:36
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Enviar formulario por email (Xampp)

Gracias por contestar, pero que va, no hay forma. He dejado el código así:

Código:
mail($recipiente, $asunto, $msg);
porque me devolvia syntax error, asi es que eliminé "FROM:$email". Pero sigue sin llegar nada a mi bandeja de correo.

Por cierto, olvidé mencionar que el php que tengo es la version 5, he leido que puede haber diferencias al escribir la función mail, pero claro, ni idea. :/

Saludos!
  #4 (permalink)  
Antiguo 21/06/2008, 06:56
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Enviar formulario por email (Xampp)

Hola, mirate este ejemplo del manual oficial de php

Código PHP:

<?php
// múltiples recipientes
$para  '[email protected]', '// note la coma
$para .= '[email protected]';

// asunto
$asunto 'Recordatorios de Cumpleaños para Agosto';

// mensaje
$mensaje '
<html>
<head>
  <title>Recordatorios de Cumpleaños para Agosto</title>
</head>
<body>
  <p>¡Aquí están los cumpleaños que vienen en Agosto!</p>
  <table>
    <tr>
      <th>Persona</th><th>Día</th><th>Mes</th><th>Año</th>
    </tr>
    <tr>
      <td>Juan</td><td>3</td><td>Agosto</td><td>1970</td>
    </tr>
    <tr>
      <td>Sandra</td><td>17</td><td>Agosto</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
'
;

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

// Cabeceras adicionales
$cabeceras .= 'To: María <[email protected]>, Kelly <[email protected]>' "\r\n";
$cabeceras .= 'From: Recordatorio de Cumpleaños <[email protected]>' "\r\n";
$cabeceras .= 'Cc: [email protected]"\r\n";
$cabeceras .= 'Bcc: [email protected]"\r\n";

// Enviarlo
mail($para$asunto$mensaje$cabeceras);
?>
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:04.