Foros del Web » Programando para Internet » PHP »

problemas para mandar emails con php

Estas en el tema de problemas para mandar emails con php en el foro de PHP en Foros del Web. los correos me llegan cuando utilizo el formulario pero me llegan en blanco... os pongo el codigo: send.php: Código PHP: <?php $nombre  =  $_POST [ ...
  #1 (permalink)  
Antiguo 01/02/2010, 10:59
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
problemas para mandar emails con php

los correos me llegan cuando utilizo el formulario pero me llegan en blanco...

os pongo el codigo:

send.php:

Código PHP:
<?php

$nombre 
$_POST['nombre'];
$mail $_POST['mail'];
$empresa $_POST['empresa'];

$header 'From: ' $mail " \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 ", de la empresa " $empresa " \r\n";
$mensaje .= "Su e-mail es: " $mail " \r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Contacto desde Tanatos tattoo';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'mensaje enviado';
?>
Código:
<div id="formulario">
<form action="send.php" method="post" enctype="text/plain"> 
<ul>
<li>Nombre
<input type="text" id="nombre" name="Nombre" class="nombrecampo">
</li>
<li>Email *
<input type="text"  id="mail" name="mail"class="nombreemail"> 
</li>
<li>Comentarios
<textarea name="mensaje" id="mensaje" rows="10" cols="40"></textarea>  
</li>
<li>Enviar
<input type="submit" value="Enviar" class="enviarboton"> 
</li>
</ul>
</form>

</div>
  #2 (permalink)  
Antiguo 01/02/2010, 11:05
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 para mandar emails con php

PHP es "case sensitive", esto quiere decir que si la variable la llamas Nombre debes llamarla como esta declarada con mayusculas y minusculas. Ademas, PHP en cuestion de los formularios se basa bajo el name="" no el id="".
__________________
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 01/02/2010, 11:06
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: problemas para mandar emails con php

Editado!! leer arriba!
  #4 (permalink)  
Antiguo 01/02/2010, 11:10
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
pero no lo entiendo si las variables estan escritas igual,no? $nombre y en el formu name="nombre"...no veo el fallo!!!

ahora lo veo si si

Última edición por GatorV; 01/02/2010 a las 11:20
  #5 (permalink)  
Antiguo 01/02/2010, 11:11
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 para mandar emails con php

Creo que no estas viendo bien como tienes declarado la variable. Mira el campo de texto y mira la parte que dice name="". No lo tienes igual declarado en el $_POST[""]

Edito:
Ya lo viste.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 01/02/2010, 11:23
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

abimaelrc gracias tio...pero no consigo ke me llega un correo con los datos ingresao me siguen llegando en blanco!!!!
  #7 (permalink)  
Antiguo 01/02/2010, 11:25
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 para mandar emails con php

Coloca el código corregido.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 01/02/2010, 11:27
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

si lo e colocado en el serverrrr
  #9 (permalink)  
Antiguo 01/02/2010, 11:28
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 para mandar emails con php

como que no me entendiste, que escribas el código aquí, pero el corregido
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 01/02/2010, 11:31
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

Código PHP:
<?php

$nombre 
$_POST['nombre'];
$mail $_POST['mail'];
//$empresa = $_POST['empresa'];

$header 'From: ' $mail " \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: " $mail " \r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Contacto desde Tanatos tattoo';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'mensaje enviado';
?>
Código:
<form action="send.php" method="post" enctype="text/plain"> 
<ul>
<li>Nombre
<input type="text"  name="nombre" class="nombrecampo">
</li>
<li>Email *
<input type="text"   name="mail"class="nombreemail"> 
</li>
<li>Comentarios
<textarea name="mensaje"  rows="10" cols="40"></textarea>  
</li>
<li>Enviar
<input type="submit" value="Enviar" class="enviarboton"> 
</li>
</ul>
</form>
  #11 (permalink)  
Antiguo 01/02/2010, 11:37
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 para mandar emails con php

Bueno primero te sugiero que en vez de usar mail, uses la libreria PHPMailer. Pero vamos primero a crear un ejemplo sencillo antes de continuar con lo que haz hecho. Crea un archivo de PHP y envia un email sencillo
Código PHP:
Ver original
  1. mail("[email protected]","asunto","mensaje corto");
y dinos si recibes el mensaje. Luego al archivo te sugiero que envies un solo header, me refiero
Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nombre'];
  3. $mail = $_POST['mail'];
  4.  
  5. $header = 'From: ' . $mail . " \r\n";
  6.  
  7. $mensaje = "Este mensaje fue enviado por " . $nombre . " \r\n";
  8. $mensaje .= "Su e-mail es: " . $mail . " \r\n";
  9. $mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
  10. $mensaje .= "Enviado el " . date('d/m/Y', time());
  11.  
  12. $para = '[email protected]';
  13. $asunto = 'Contacto desde Tanatos tattoo';
  14.  
  15. mail($para, $asunto, $mensaje, $header);
  16.  
  17. echo 'mensaje enviado';
  18. ?>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 01/02/2010, 11:40
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
ok voy a probar lo ke me dices ;)

e copiado el codigo correguido por ti y me siguen llegando en blanco los mensajes...

y a ke te refieres con la primera linea de codigo la de mail(.....) ????

estoy usando un servidor gratuito puede ser ese el problema?

Última edición por GatorV; 01/02/2010 a las 12:06
  #13 (permalink)  
Antiguo 01/02/2010, 11:47
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 para mandar emails con php

Haz el ejemplo sencillo que te indique. de solamente hacer una linea que tenga lo que te indique lo de mail.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #14 (permalink)  
Antiguo 01/02/2010, 11:47
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

y como puedo usar la libreria phpmailer????
  #15 (permalink)  
Antiguo 01/02/2010, 11:48
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 para mandar emails con php

Ellos tienes una buena documentación, buscalo en internet vas a ver.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 01/02/2010, 16:20
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

ahora estoy intentandolo con el phpmailer: pero me dice al enviar el formulario ke no puede conectar con el servifor smtp de google...

pongo el enlace de donde me e descargado los archivos:

http://foro.eshost.com.ar/index.php/topic,1330.0.html

este es el error ke me da: SMTP Error: Could not connect to SMTP host.
Error: SMTP Error: Could not connect to SMTP host.


ya no se ke hacerr!!!!!!
  #17 (permalink)  
Antiguo 01/02/2010, 16:40
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

es para saber si esta abiero o cerrado
getsebool -a | grep sendmail
httpd_can_sendmail --> off

linux permite abrir el cortafuegos permanentemente
setsebool -P httpd_can_sendmail 1

getsebool -a | sendmail
httpd_can_sendmail --> on


reniciar servidor
service httpd restart









el problema de phpmailer es que si tiene el correo y el mensaje envía el correo
aunque tu quieras que otros campos tengan que ser obligatorios

he intentado validar con php pero phpmailer pasa de mis validaciones sino también te lo hubiera colgador


aqui hay el fichero class.phpmailer.php que tienes que incluir en el ejemplo
http://sourceforge.net/projects/phpm...0for%20php5_6/

ejemplo para gmail
http://phpmailer.worxware.com/index....=exampleagmail


Código PHP:
<?php
include("class.phpmailer.php"); 
     

//include("class.smtp.php"); 

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch 

$mail->IsSMTP(); // telling the class to use SMTP 

try { 
  
$mail->Host       "localhost"// SMTP server 
  
$mail->SMTPDebug  2;                     // enables SMTP debug information (for testing) 
  
$mail->SMTPAuth   true;                  // enable SMTP authentication 
  
$mail->SMTPSecure "ssl";                 // sets the prefix to the servier 
  
$mail->Host       "smtp.gmail.com";      // sets GMAIL as the SMTP server 
  
$mail->Port       465;                   // set the SMTP port for the GMAIL server 
  
$mail->Username   "[email protected]";  // GMAIL username 
  
$mail->Password   "****************";            // GMAIL password 




  //$mail->AddReplyTo('[email protected]', 'First Last'); 
 
$mail->AddAddress(strtolower($_POST['correo']),strtolower($_POST['nombre']) ); 
$mail->SetFrom('[email protected]''negocio'); 
//$mail->AddReplyTo('[email protected]', 'First Last');//remitent 
$mail->Subject=("negocio ".strtolower($_POST['asunto'])); 
$mail->MsgHTML(strtolower($_POST['mensaje'])); 







$mail->Send(); 



  echo 
"<span class='correcto'><h2>Mensaje enviadao correctamente</h2></span>\n"
} catch (
phpmailerException $e) { 
echo 
$e->errorMessage(); //Pretty error messages from PHPMailer 
} catch (Exception $e) { 
echo 
$e->getMessage(); //Boring error messages from anything else! 

?>
</body>
</html>


Última edición por albertrc; 01/02/2010 a las 16:55
  #18 (permalink)  
Antiguo 01/02/2010, 17:58
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 15 años, 6 meses
Puntos: 1
gracias albert ya me lo e descargao y lo voy a subir al server pero una cosa...el codigo ke me pones donde tengo ke meterlo????

SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
SMTP Error: Could not connect to SMTP host.

esto de aki arriba es lo ke me dice despues de haber hecho varias modificaciones.......

necesito ayuda para relacionar el formulario de contacto con el phpmailer.. ya que yo de programar en php no se apenas nada.........alguien sabe como hacerlo?

Última edición por GatorV; 02/02/2010 a las 10:29
  #19 (permalink)  
Antiguo 02/02/2010, 05:14
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: problemas para mandar emails con php

yo he creado un fichero que se llama phpmailer.php y dentro tengo el include de class.phpmailer.php tienen que estar en la misma ubicación

después tienes que crear un formulario contactar.php

[
Código HTML:
<div>
<form action="contactar.php" method="post" name="contactar" >
	
<div>				
<label for="correo">Correo<span class="obligatorio">*</span></label>
<input type="text" name="correo" id="correo" value="correo"  maxlength="38" size="28" />
</div>
		

<div>
	<label for="asunto">asunto <span class="obligatorio">*</span></label>
	<input type="text" name="assumpto" id="assumpto" value="asunto"  maxlength="38" size="28"/>
</div>
							
								
<div>					
<input type="text" name="nombre" id="nombre"  value="nombre" maxlength="38" size="28">
	<label for="nombre">Nombre y apellidos<span class="obligatorio">*</span></label>
</div>
							
<div>
<textarea type="text" id="mensaje" name="mensaje" cols="32" rows="10"></textarea>
<label for="missatge">Mensaje <span class="obligatorio">*</span></label>
</div>
											
								
<div class="botones">
<input  type="submit" name="enviar" value="enviar" id="enviar" />
 </div>
					
</form> 
Código PHP:
<?php
                            
include("correo/phpmailer.php");
                        
?>
</div>

aquí llamo el fichero phpmailer que en este caso lo tengo dentro una carpeta que se llama correo y dentro también hay class.phpmailer.php

Etiquetas: mandar, email
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 10:05.