Foros del Web » Programando para Internet » PHP »

problemas con funcion mail

Estas en el tema de problemas con funcion mail en el foro de PHP en Foros del Web. Hola amigos pues tengo un problema con la funcion mail cuando la mando así: Código PHP: mail ( "[email protected]"  $titulo ,  $mensaje ,  $cabeceras )  ...
  #1 (permalink)  
Antiguo 22/07/2013, 12:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 16 años, 3 meses
Puntos: 11
problemas con funcion mail

Hola amigos pues tengo un problema con la funcion mail cuando la mando así:


Código PHP:
mail("[email protected]$titulo$mensaje$cabeceras
me funciona
y cuando la mando asi:

Código PHP:
mail($email$titulo$mensaje$cabeceras
no me funciona

y eso que en el mismo archivo despues de la funcion mail hago un echo $email;

y me escribe el email que guardo en esa variable y está perfecto, sabeís a que es debido.
  #2 (permalink)  
Antiguo 22/07/2013, 14:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: problemas con funcion mail

Simplemente, verifica los valores de las variables, antes de la función a ver que tienen y de esa forma sabes porque no lo está enviando. También habilita los errores, te recomiendo una búsqueda en el foro vas a ver muchos temas como se puede habilitar el mostrar los errores.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 22/07/2013, 15:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: problemas con funcion mail

Graias abimael, todos los valores están bien los coge bien de hecho solo hay un pequeño cambio la variable $email, que por cierto me coge bien el contenido porque lo compruebo con un hecho y los errores están habilitados. No se que puede ser estooy desesperado ya.
  #4 (permalink)  
Antiguo 22/07/2013, 15:43
 
Fecha de Ingreso: junio-2013
Ubicación: santiago
Mensajes: 34
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: problemas con funcion mail

Aqui te mando un codigo facil y que funciona, espero te sirva

Cita:
<form action="enviar.php" method="post" id="ContactForm">
<div>
<div class="wrapper">
<span>*Nombre:</span>
<input name="Nombre" type="text" required class="col1" id="Nombre" maxlength="60">
</div>
<div class="wrapper">
<span>Empresa:</span>
<input name="Empresa" type="text" class="col1" id="Empresa" maxlength="50">
</div>
<div class="wrapper">
<span>*motivo:</span>
<input name="motivo" type="text" class="col1" id="motivo" maxlength="50">
</div>
<div class="wrapper">
<span>*Telefono</span>
<input type="tel" id="telefono" name="telefono" size="6" maxlength=9 pattern="[0-9]{6}" class="col1" placeholder="celular y telefono fijo">
</div>
<div class="wrapper">
<span>E-mail</span>
<input type="email" id="mail" name="mail" required class="col1" placeholder="direccion de correo" >
</div>
<div class="textarea_box">
<span>Su mensaje:</span>
<textarea name="consulta" cols="1" id="consulta" placeholder="Escriba aqui su mensaje"></textarea>
</div>


<a href="javascript:validar();" class="button" onClick="document.getElementById('ContactForm').su bmit()">Enviar</a>
<a href="javascript:validar();" class="button" onClick="document.getElementById('ContactForm').re set()">Borrar</a>
</div>
</form>
crear el archivo enviar.php y colovar lo iguiente

Cita:
<?php
//Correo de destino; donde se enviará el correo.
$correoDestino = "[email protected]";


//Variables.

$Nombre = $_POST['Nombre'];
$mail = $_POST['mail'];
$consulta = $_POST['consulta'];
$telefono = $_POST['telefono'];


//Formateo el asunto del correo
$asunto = "Contacto WEB_$Nombre; $Empresa, ";

//Cuerpo del email que se te enviará.

$cuerpo = "Enviado por: " . $Nombre . "\n, ".
$cuerpo .= "E-mail: " .$mail . "\n";
$cuerpo .= "Comentario:" .$consulta . " \n ";
$cuerpo .= "telefono:" .$telefono . " \n ";
// Envío el mensaje
// Envío el mensaje
mail( $correoDestino, $asunto, $cuerpo );

//$mail_status = mail( $mail_to );
?>
<script language="javascript" type="text/javascript">
alert('SE ENVIO CON EXITO. PRONTO ESTAREMOS EN CONTACTO CON USTED,PRESIONE ACEPTAR');
window.location = 'index.html';
</script>

PD: pero la verdad te recomiendo usar phpmailer o swifmailer, son mas seguros por estos codigos simples son muy rapidos de ser infectados y envian spam.

Saludos
  #5 (permalink)  
Antiguo 23/07/2013, 05:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: problemas con funcion mail

bullangeros gracias el problema no es tener una sistema que ya lo he creado. El problema es que la funcion me funciona si le mando una cadena con el nombre del email y no cuando le mando una variable con el nombre del email. No se si me explico.
  #6 (permalink)  
Antiguo 23/07/2013, 08:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: problemas con funcion mail

¿Puedes mostar los valores? Como te indiqué, inmediatamente antes de la función haz un echo a todas las variables para ver que te trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 23/07/2013, 08:56
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: problemas con funcion mail

Código PHP:
Ver original
  1. $asunto = "Contacto WEB_$Nombre; $Empresa, ";

tenes 1 coma ahí y un ; metido en medio

y acá te falta ; no se si tendrás otro problema a simple vista vi eso.
Código PHP:
Ver original
  1. $cuerpo = "Enviado por: " . $Nombre . "\n, ".

Etiquetas: funcion, mail, variable
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 21:39.