Foros del Web » Programando para Internet » PHP »

Problemas con formulario para mandar email

Estas en el tema de Problemas con formulario para mandar email en el foro de PHP en Foros del Web. Pues no tengo ni idea de PHP, y he buscado un codigo para mandar emails rellenando un formulario y kitar asi el mailto de mi ...
  #1 (permalink)  
Antiguo 18/01/2006, 07:16
Tew
 
Fecha de Ingreso: enero-2006
Mensajes: 1.562
Antigüedad: 11 años, 10 meses
Puntos: 17
Problemas con formulario para mandar email

Pues no tengo ni idea de PHP, y he buscado un codigo para mandar emails rellenando un formulario y kitar asi el mailto de mi pagina. Ademas el hosting gratuito dice soportar PHP...

Bueno el caso es ke subo los archivos php y hago pruebas, y va bien validando si todos los campos han sido rellenados, y si la direccion de email tiene una forma correcta.

El problema viene al enviar los emails, dice ke se ha enviado pero a mi cuenta de correo nunca llega nada... y los primeros de prueba los mande ayer.

Los codigos son:

Cita:
Iniciado por mail.php
<body>
<div id="contenedor" style="width:560px;">
<p>&nbsp;</p>
<form action="sendemail.php" method="post">
<?php
$ipi = getenv("REMOTE_ADDR");
$httprefi = getenv ("HTTP_REFERER");
$httpagenti = getenv ("HTTP_USER_AGENT");
?>
<input type="hidden" name="ip" value="<?php echo $ipi ?>">
<input type="hidden" name="httpref" value="<?php echo $httprefi ?>">
<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>">
<p align="left">Nombre:<br><input type="text" name="visitor" size="40"></p>
<p align="left">Correo:<br><input type="text" name="visitormail" size="40"></p>
<p align="left">Asunto:<br><select name="attn" size="1">
<option value="Animación">Animación</option>
<option value="Página Web">Página Web</option>
<option value="Programación">Programación</option>
<option value="Retoque Digital y Diseño Gráfico">Retoque Digital y Diseño Gráfico</option>
<option value="Otros">Otros</option>
</select></p>
<p align="left">Comentario:<br><textarea name="notes" cols="60" rows="10"></textarea></p>
<p><input type="submit" value="Enviar">&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="Borrar"></p>
</form>
</div>
</body>

Cita:
Iniciado por sendemail.php
<body>
<p align="center">
<?php
if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,"."))){
echo "<h2>Regresa e introduce una direción de e-mail valida.</h2>\n";
$badinput = "<h1>¡¡¡MENSAJE NO ENVIADO!!!</h1>\n";
}
if(empty($visitor) || empty($visitormail) || empty($notes )){
echo "<h2>Regresa y completa todos los campos.</h2>\n";
}
echo $badinput;

$todayis = date("l, F j, Y, g:i a") ;

$attn = $attn ;
$subject = $attn;

$notes = stripcslashes($notes);

$message = " $todayis [EST] \n
Asunto: $attn \n
Mensaje: $notes \n
De: $visitor ($visitormail)\n
Información Adicional: IP = $ip \n
Navegador: $httpagent \n
Referido: $httpref \n
";

$from = "De: $visitormail\r\n";

mail("[email protected]", $subject, $message, $from);
?>
</p>
<p align="center">
Fecha: <?php echo $todayis ?><br>
Gracias: <?php echo $visitor ?> ( <?php echo $visitormail ?> )<br>
Asunto: <?php echo $attn ?><br>
Mensaje:<br>
<?php $notesout = str_replace("\r", "<br/>", $notes);
echo $notesout; ?><br>
</p>
<p align="center"><a href="./inicio.htm" class="link">Inicio</a></p>
</body>
A ver si encontrais algun fallo, o sabeis cual es el problema... yo ya os digo ke no tengo ni idea de php.
  #2 (permalink)  
Antiguo 18/01/2006, 08:38
 
Fecha de Ingreso: enero-2006
Mensajes: 54
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola, pues aparentemente todo esta bien, pero para poder verificar exactamente si el mensaje se esta enviando seria mejor que la funcion mail la pusieras de la siguiente manera:
--------------------------------------------------------------
if(mail("[email protected]", $subject, $message, $from))
{
echo "Mensaje Enviado";
}
else
{
echo "Error al enviar el mensaje";
}
-------------------------------------------------------------
Y ademas la mayoria de mensajes que se envian de esa forma aparecen en las bandejas de Correo no Deseado o Spam asi que tendrias que revisar ahi.

Espero te ayude en algo. Bye.
  #3 (permalink)  
Antiguo 18/01/2006, 08:54
 
Fecha de Ingreso: enero-2006
Mensajes: 143
Antigüedad: 11 años, 11 meses
Puntos: 0
Justamente, estoy haciendo un formulario yo tmb ahora mismo.
Yo de ti, visitaría PHP.net y buscas la funcion mail(), pq el código que usas no me suena muy bien... sé que se puede de muchas más maneras, pero bueno...

Yo no sé mucho de PHP, pero que me dices de esto:

Cita:
if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,"."))){
no crees q sobran parentesis?
Mira esto otro:

Código PHP:
$message " $todayis [EST] \n
Asunto: $attn \n
Mensaje: $notes \n
De: $visitor ($visitormail)\n
Información Adicional: IP = $ip \n
Navegador: $httpagent \n
Referido: $httpref \n

No sé, pero creo que deberías separar las partes en vez de englobarlo todo junto con las comillas.(no se mucho yo....)
  #4 (permalink)  
Antiguo 18/01/2006, 09:03
Tew
 
Fecha de Ingreso: enero-2006
Mensajes: 1.562
Antigüedad: 11 años, 10 meses
Puntos: 17
No, no llegan a ninguna carpeta ni de correo normal ni no deseado...

En cuanto a los parentesis hay 4 de apertura y 4 de cierre en toda la condicion y estan bien balanceados, asi ke eso no deberia presentar problemas.

Por otra parte la forma de guardar la informacion en la variable message no se si sera la mas correcta, tal vez un $message = $notes; fuese suficiente y estaria mejor...

Voi a probar a poner la condicion para comprobar ke el mensaje sea enviado o no ke comenta csalazar146 a ver ke pasa...
  #5 (permalink)  
Antiguo 18/01/2006, 09:10
Tew
 
Fecha de Ingreso: enero-2006
Mensajes: 1.562
Antigüedad: 11 años, 10 meses
Puntos: 17
Pues con la condicion para comprobar ke el mensaje se ha enviado o no la respuesta es: MENSAJE ENVIADO. Aun asi los emails no llegan...

Tendre ke mirar en PHP.net...

Garto-la, si puedes colocar el codigo aki cuando lo acabes si funciona tb te lo agraceceria
  #6 (permalink)  
Antiguo 18/01/2006, 16:05
Tew
 
Fecha de Ingreso: enero-2006
Mensajes: 1.562
Antigüedad: 11 años, 10 meses
Puntos: 17
Bien, creo ke el problema viene del hosting (despues de lo ke he visto hoy ya me espero cualkier cosa).

Como dije al principio del hilo no tengo ni idea de PHP y no se ke es necesario para ke esto funcione. Pero he leido en alguna pagina, ya no se cual pk he mirado un monton ke es necesario un binario en el server, y ke primero se buscara en mi carpeta y despues en /usr/... la cuestion entonces es si necesito subir eso al hosting o ke?
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 07:13.