Foros del Web » Programando para Internet » PHP »

Problemas con mail()

Estas en el tema de Problemas con mail() en el foro de PHP en Foros del Web. Hola gente..!!! tengo el siguiewnte problema: se ha hecho un *.htm para que los cibernautas ingresen sus comentarios y un *.php para que envie un ...
  #1 (permalink)  
Antiguo 22/01/2005, 20:07
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo Problemas con mail()

Hola gente..!!!
tengo el siguiewnte problema: se ha hecho un *.htm para que los cibernautas ingresen sus comentarios y un *.php para que envie un mail con esos datos; poero el probnlema es que hasta hora estoy espreando los emnsajes y nada de nada, sè que hay algo que esta mal, podrian decirme cual està mal?? o darme otra soluciòn para enviar comentario, porfis una ayuda a este principiante , graciaas de ante mano.
este s el Htm:
__________________________
<html>
<head>
<title>Enviar comentario a Mastic®Soluciones</title>
</head>

<body topmargin="0" leftmargin="0">

<form action="mail.php" method="post">
<p align="center" style="margin-bottom: -11">
<img border="0" src="imagenes/enviarcomentario2.jpg">
<p align="center" style="margin-bottom: -11">

<font color="#999999"> Nombre: <input type="text" name="nombre" size="20" style="color: #FFFFFF; font-weight: bold; background-color: #CCCCCC"><br />
<input type=hidden [email protected] name="destinatario" size="30">
E-mail: <input type="text" name="headers" size="30" value="@" style="color: #FFFFFF; background-color: #CCCCCC; font-weight: bold"><br />
Asunto: <input type="text" name="asunto" size="20" style="color: #FFFFFF; font-weight: bold; background-color: #CCCCCC"><br />
Comentario:<br /> <textarea name="cuerpo" cols="45" rows="7" style="color: #999999"></textarea></font>
<p align="center">
<font color="#999999"><input type="submit" value="Enviar!" style="background-color: #999999; color: #FFFFFF; font-weight: bold; border-style: outset">
</font>
</form>
</body>
</html>
_________________________
este es el *.php
____________________
<?
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
if($headers!="")
{
mail($destinatario,$asunto,$cuerpo,$headers);
echo "Se envió satisfactoriamente su comentario. ..Mastic®Soluciones..";
}
else
{
echo "Debe escribir su e-mail válido, no se pudo enviar el comentario";
}
?>
________________
aqui acaba porfis una manito.
bye
Att. ALain
  #2 (permalink)  
Antiguo 22/01/2005, 21:48
Avatar de jesusbet
(Desactivado)
 
Fecha de Ingreso: mayo-2004
Ubicación: Monterrey, MX
Mensajes: 2.667
Antigüedad: 19 años, 11 meses
Puntos: 2
Intenta recibiendo las variables del formulario:
$_POST['nombre']; y así sucesivamente para todas las variables.

saludos
  #3 (permalink)  
Antiguo 23/01/2005, 18:57
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo

Jesubet:
No te entiendo, porfavor odrias ser un poco mas explicito??????
gracias.
  #4 (permalink)  
Antiguo 23/01/2005, 19:01
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 19 años, 3 meses
Puntos: 0
por ejemplo si reciber una variable del post llamada nombre, la recibes asi;

$nombre = $_POST['nombre'];

y asi sucecibamente, si son muchas las variables, puedes crear un bucle, para recivirlas todas automaticamente ;)

Saludos !
  #5 (permalink)  
Antiguo 25/01/2005, 19:11
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
Gracias ya entendi
una pregunta más: la función mail( ???? )
???? tiene que tener un orden, osea primero va remitente, luego email, luego asunto, etc hay un orden para esto????
gracias.
Att
Taurito
  #6 (permalink)  
Antiguo 25/01/2005, 19:19
Avatar de futilidad  
Fecha de Ingreso: julio-2002
Mensajes: 388
Antigüedad: 21 años, 9 meses
Puntos: 0
mail ( string para, string sobre, string mensaje [, string cabeceras_adicionales])
ejemplo: mail("[email protected]", "Sobre este tema", "Linea 1\nLinea 2\nLinea 3");
  #7 (permalink)  
Antiguo 25/01/2005, 19:25
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Amigo, ese if($headers!="") no tiene ningún sentido. La variable $headers siempre será distinta a "" debido a que anteriormente le estas dando valores. Además, deberías validar cada una de las variables para comprobar que ninguna quede vacía, de lo contrario la función mail() te dará error.

Los header puedes especificarlos directamente en la función mail, no es necesario que los almacenes en una variable. Otra cosa, usa los arrays superglobales para garantizar la seguridad de tu script.

Un saludo!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #8 (permalink)  
Antiguo 26/01/2005, 19:00
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
Takitei...
Te entendí alguito, como podría validar el email que la persona ingresa ahi, osea que contengue un '@', '.' ([email protected]); yq ue es eso de arrays super globales??, me podrias faciliatr otros ejemplos de mail() para hacer unas comparciones y arrojar uno que se ajuste a mis necesidades??
gracias
att. Taurus
  #9 (permalink)  
Antiguo 26/01/2005, 20:44
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Para validar una dirección de email tienes que usar expresiones regulares. La puedes validar con un if() o con operadores ternarios, de esta forma:

Código PHP:
if(eregi("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email)){
  
el mail es válido
}else{
  
el mail es inválido

Los arrays superglobales son $_GET, $_POST, $_SERVER, etc. Aca las tienes todas: http://ve.php.net/reserved.variables

Para aplicar la validación de tu mail, todo depende de tu script y de cómo lo desees hacer.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #10 (permalink)  
Antiguo 04/02/2005, 17:05
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo gracias

..gracias gente, si que me valio mucho sus coemntarios
espeor seguir en esta onda
  #11 (permalink)  
Antiguo 04/02/2005, 17:35
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Estamos siempre a la orden.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #12 (permalink)  
Antiguo 10/02/2005, 16:49
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo

Hola denuevo Takitei, no corr la validad ciond e emil, siempre me dice que el email es invalido y qué es eso de "eregi"...
no te molestes ehhh.
garcias...!!!
Att:Taurus
  #13 (permalink)  
Antiguo 11/02/2005, 07:38
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
eregi() es esto: http://ve.php.net/manual/es/function.eregi.php

Si nos colocas tu script, creo que podemos ayudarte mejor.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #14 (permalink)  
Antiguo 11/02/2005, 08:55
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
este es el código ve: *.php
___________
<?php
if(eregi("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email))
{
mail("$destinatario","$asunto","$cuerpo");
echo "Se envió satisfactoriamente su comentario.";
echo "<p>";
echo "Gracias por el comentario vertido estimado(a) $nombre ";
echo "<p>";
}
else
{
echo "El mail es inválido, porfavor estimado(a) $nombre ingrese un Mail válido";
}

?>
____________
una ayuda pue
gracias
  #15 (permalink)  
Antiguo 11/02/2005, 09:00
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Ese código no me dice nada. ¿Cómo se llama el campo donde tienes tu email?
Coloca el HTML, por dios....
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #16 (permalink)  
Antiguo 11/02/2005, 10:12
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
este es el *.htm
________-
<form action="mail.php" method="post">
<p align="center" style="margin-bottom: -11">
<img border="0" src="imagenes/enviarcomentario2.jpg">
<p align="center" style="margin-bottom: -11">

<font color="#999999"> Nombre: <input type="text" name="nombre" size="20" style="color: #FFFFFF; font-weight: bold; background-color: #CCCCCC"><br />
<input type=hidden [email protected] name="destinatario" size="30">
E-mail: <input type="text" name="headers" size="30" value="@" style="color: #FFFFFF; background-color: #CCCCCC; font-weight: bold"><br />
Asunto: <input type="text" name="asunto" size="20" style="color: #FFFFFF; font-weight: bold; background-color: #CCCCCC"><br />
Comentario:<br /> <textarea name="cuerpo" cols="45" rows="7" style="color: #999999"></textarea></font>
<p align="center">
<font color="#999999"><input type="submit" value="Enviar!" style="background-color: #999999; color: #FFFFFF; font-weight: bold; border-style: outset">
</font>
</form>
__________
y como sabes este es el *.php
_________
<?php
if(eregi("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email))
{
mail("$destinatario","$asunto","$cuerpo");
echo "Se envió satisfactoriamente su comentario.";
echo "<p>";
echo "Gracias por el comentario vertido estimado(a) $nombre ";
echo "<p>";
}
else
{
echo "El mail es inválido, porfavor estimado(a) $nombre ingrese un Mail válido";
}

?>
____________
ok....
  #17 (permalink)  
Antiguo 11/02/2005, 10:21
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
¿Y como pretendes que te funcione si estas haciendo una validación a una variable que no existe "$email"?

eregi("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$email))

Por dios.... en ese caso tienes que hacer esto:

Código PHP:
<?php
if(eregi("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$destinatario))
{
mail("$destinatario","$asunto","$cuerpo");
echo 
"Se envió satisfactoriamente su comentario.";
echo 
"<p>";
echo 
"Gracias por el comentario vertido estimado(a) $nombre ";
echo 
"<p>";
}
else
{
echo 
"El mail es inválido, porfavor estimado(a) $nombre ingrese un Mail válido";
}

?>
Además.. eso no tiene sentido, porque el email lo estás poniendo tu, no el usuario. Es una tontería validar un buzón que es tuyo.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #18 (permalink)  
Antiguo 11/02/2005, 11:07
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
este es el codigo htm
_________
<form action="mail.php" method="post">
<p align="center" style="margin-bottom: -11">
<img border="0" src="imagenes/enviarcomentario2.jpg">
<p align="center" style="margin-bottom: -11">

<font color="#999999"> Nombre: <input type="text" name="nombre" size="20" style="color: #FFFFFF; font-weight: bold; background-color: #CCCCCC"><br />
<input type=hidden [email protected] name="destinatario" size="30">
E-mail: <input type="text" name="headers" size="30" value="@" style="color: #FFFFFF; background-color: #CCCCCC; font-weight: bold"><br />
Asunto: <input type="text" name="asunto" size="20" style="color: #FFFFFF; font-weight: bold; background-color: #CCCCCC"><br />
Comentario:<br /> <textarea name="cuerpo" cols="45" rows="7" style="color: #999999"></textarea></font>
<p align="center">
<font color="#999999"><input type="submit" value="Enviar!" style="background-color: #999999; color: #FFFFFF; font-weight: bold; border-style: outset">
</font>
</form>
_________
  #19 (permalink)  
Antiguo 11/02/2005, 16:31
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 3 meses
Puntos: 0
jejejej. gracias Takitei,, es cierto; yo me estoy enviadno un mail , pero lo que me interesa es que la persona que escriba su comentario por lo menos su email see validado, cosa que resultó gracias a a ti, y no era $email si no es: $headers.
Gracias gente
cualquier otro inconveniente que tengue les paso el dato
byeeeeeeeeeeeeeeeee
graciasssssssssssss
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 18:32.