Envío de email con php

Tengo un problema con mi formulario de envío de mensajes por email
Me sale este error
Warning: mail() [function. Mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\AppServ\www\probando\envia.php on line 30
El código que utilizo es el siguiente:
<?
if (!$HTTP_POST_VARS){
?>
<form action="" method=post>
Nombre: <input type=text name="nombre" size=16>
<br>
Email: <input type=text name="email" size=16>
<br>
Comentarios: <textarea name="coment" cols=32 rows=6></textarea>
<br>
<input type=submit value="Enviar">
</form>
<?
}else{
    //Estoy recibiendo el formulario, compongo el cuerpo
    $cuerpo = "Formulario enviado\n";
    $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
    $cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
    $cuerpo .= "Comentarios: " . $HTTP_POST_VARS["coment"] . "\n";
    //mando el correo...
    mail("[email protected]","Formulario recibido",$cuerpo);
    //doy las gracias por el envío
    echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>

1 respuesta

Respuesta
1
El problema está en que te falta un atributo para la función mail que es el de las cabeceras, te pongo un ejemplo de uno estándar que tengo yo adaptado a lo tuyo:
$nombre = $HTTP_POST_VARS["nombre"];
$comentarios = $HTTP_POST_VARS["coment"];
$email = $HTTP_POST_VARS["email"];
$header = "From: $email\r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje = "Este mensaje fue enviado por " . $nombre . " \r\n";
$mensaje .= "Su e-mail es: " . $email . " \r\n";
$mensaje .= "Comentarios: " . $comentarios . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());
$para = '[email protected];
$asunto = 'Correo desde la web tudominio.com';
mail($para, $asunto, $mensaje, $header);
Ahora sale
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in
Mmm, ¿tienes instalado el servidor de correo correctamente? ¿Y si es así su dirección es localhost y puerto 25?
Ahí estuvo el problema, bueno tengo otro problema más
a la hora de mostrar datos en los reportes cuando hago las pruebas en el explorador no me carga los datos, lo más curioso de esto es que la programación está bien ya que cuando lo pruebo con un solo registro en la tabla de la base de datos todo funciona bien (carga la página mostrando los datos), pero cuando agrego un registro más a la tabla de mi base de datos ya no me carga la página en el explorador (la página muestra el mensaje de transferencia de datos), este problema solo me sucede con 2 de las tablas de la base de datos (las que tienen más campos), porque las que tienen de 4 a 6 campos cargan normal
hasta ahora no encuentro la explicación para esto
¿Te da algún tipo de error al mostrar? No se, si son muchos datos podría ser que PHP necesitara más memoria para poder realizar la operación pero lo veo raro. Puedes revisar en el servidor apache en los logs de errores a ver si por ahí te sale algo.
No sale ningún error
Es como cuando digitas la dirección (www.google.com) por ejemplo y empieza a cargar la página, en la parte inferior te muestra el mensaje de transferencia de datos del servidor
Es lo miemo que me pasa al querer cargar la página de reporte aparece l mismo mensaje pero al final no carga nada, como te digo solo me pasa eso cuando trabajo con más de 2 registros
Lo siento que he estado muy liado, pues no se la verdad es que es muy raro, te voy a recomendar una herramienta porque la verdad no se me ocurre nada más, el FireBug para usar con Firefox, desde este programa, usa la Consola y ahí suelen salir errores porque que falle PHP y no te de errores es raro... sino pues puedes intentar a repostear la pregunta igual otro experto con una vista más fresca del problema te ayude. Suerte en cualquier caso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas