Foros del Web » Programando para Internet » PHP »

función mail no llega a todos

Estas en el tema de función mail no llega a todos en el foro de PHP en Foros del Web. Hola amigos!! LLevo un tiempo usando la función "mail" de php, de forma genérica: Código PHP: mail ( $to ,  $subject ,  $message ,  $headers ...
  #1 (permalink)  
Antiguo 15/11/2012, 08:32
 
Fecha de Ingreso: marzo-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 2
función mail no llega a todos

Hola amigos!!

LLevo un tiempo usando la función "mail" de php, de forma genérica:
Código PHP:
mail($to$subject$message$headers); 
Siempre me ha funcionado bien, pero también es verdad q siempre he tenido problemas porque a algunos correos como gmail o hotmail, llega como spam o muchas veces ni siquiera llega!!

Hay alguna manera de solucionarlo?? Es cosa de los del hosting o algo??
Grcias gente!!
  #2 (permalink)  
Antiguo 15/11/2012, 08:39
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: función mail no llega a todos

Utiliza la libreria phpmailer() y usa SMTP.

Aqui te dejo estos enlaces haber si te sirven de ayuda:

http://darkchicles.wordpress.com/201...php-phpmailer/
http://guiabreve.com/enviar-correos-con-phpmailer.html

Si no lo consiges funcionar, comenta, y a si te podemos hechar todos una mano.

Un saludo.
__________________
Twitter: @ed33x
  #3 (permalink)  
Antiguo 16/11/2012, 05:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 83
Antigüedad: 15 años
Puntos: 2
Respuesta: función mail no llega a todos

La librería phpMailer() parece muy parecida a la función mail(), supongo que el cuerpo del mensaje q quiero enviar, q es en HTML, podré enviarlo igualmente, no??

La librería tiene versiones?? hay algún sito oficial donde descargármela??

Otra cosilla, el SMTP es con los datos del servidor donde estará alojada la web, no?? Y q es el SSL?? (Es q estoy un poco pez!! jejejjejee)

Gracias por todo!!
  #4 (permalink)  
Antiguo 16/11/2012, 10:26
Avatar de Geghnar  
Fecha de Ingreso: noviembre-2012
Ubicación: Vigo
Mensajes: 17
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: función mail no llega a todos

Hola lambdavi; te dejo la misma info que compartí con otro compañero en otro post; yo utilizo PHPMailer desde hace tiempo y me va de fábula...

Lo puedes descargar desde http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip/download.

Te dejo también un ejemplo del envío que hago de un formulario cualquiera a ver si te resulta de ayuda.


Código PHP:
<?php

$nombre 
stripslashesstrip_tags(trim($_POST['nombre'])));

$apellidos stripslashesstrip_tags(trim($_POST['apellidos'])));

$empresa stripslashesstrip_tags(trim($_POST['empresa'])));

$nif stripslashesstrip_tags(trim($_POST['nif'])));

$email stripslashesstrip_tags(trim($_POST['email'])));  

$direccion stripslashesstrip_tags(trim($_POST['direccion'])));  

$cp stripslashesstrip_tags(trim($_POST['cp'])));  

$poblacion stripslashesstrip_tags(trim($_POST['poblacion'])));  

$provincia stripslashesstrip_tags(trim($_POST['provincia'])));  

$telf stripslashesstrip_tags(trim($_POST['telf'])));  

$coment stripslashesstrip_tags(trim($_POST['coment'])));  


$fecha=date('d \d\e\l n \d\e\l Y');

$cuerpo "<html><head><title>E-Mail de Contacto</title></head><body>"

$cuerpo .= "<strong>CONTACTO WEB XXXXXX</strong><br><br>";

$cuerpo .= "<strong>Enviado el:</strong> " $fecha "<br>";

$cuerpo .= "<strong>Nombre:</strong> " utf8_decode($nombre) ."&nbsp;"utf8_decode($apellidos) . "<br>";

$cuerpo .= "<strong>Empresa:</strong> " utf8_decode($empresa) . "<br>";

$cuerpo .= "<strong>NIF/CIF:</strong> " $nif "<br>";

$cuerpo .= "<strong>E-mail:</strong> " $email "<br>";

$cuerpo .= "<strong>Direcci&oacute;n:</strong> " utf8_decode($direccion) . "&nbsp;"$cp ."<br>";

$cuerpo .= utf8_decode($poblacion) . "&nbsp;"utf8_decode($provincia) ."<br>";

$cuerpo .= "<strong>Tel&eacute;fono:</strong> " $telf "<br>";

$cuerpo .= "<strong>Comentarios:</strong> " utf8_decode($coment) . "<br><br>";

$cuerpo .= "<strong>Pol&iacute;tica de privacidad: Aceptada.</strong><br>";

$cuerpo .= "</body></html>"


require(
"../clases/class.phpmailer.php");   //ruta donde tienes los archivos de PHPMailer (class.phpmailer.php, class.pop3.php y class.smtp.php)

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->Host ="HOST";  //servidor de correo saliente

$mail->SMTPAuth true;

$mail->Port 25;  //no cambiar a no ser que se especifique otro

$mail->Username "USER";  //poner el usuario de la cuenta

$mail->Password "PASSWORD"//poner el password de la cuenta

$mail->SetLanguage("es");

$mail->CharSet ="utf-8";

$mail->From = ("".$email."");  //cuenta de correo de donde nos llega el formulario

$mail->FromName = ("".utf8_decode($nombre)." ".utf8_decode($apellidos)."");  //campo "De:"

$mail->AddAddress("[email protected]");  //dirección de destino, se pueden añadir más destinatarios

$mail->AddReplyTo("".$email."""".utf8_decode($nombre)." ".utf8_decode($apellidos)."");  //nombre e e-mail al que se responderá

$mail->IsHTML(true);



$mail->Subject "Contacto desde su pagina Web";  //asunto

$mail->Body "".utf8_encode($cuerpo)."";

$mail->AltBody "";

if(!
$mail->Send()) {

    
$err=1;

    
header("location:fallo_envio.php");

} else {

    
header("location:envio_correcto.php");

}


?>
Pruébalo y ya me contarás...

Salu2
  #5 (permalink)  
Antiguo 16/11/2012, 12:57
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: función mail no llega a todos

Cita:
La librería phpMailer() parece muy parecida a la función mail(), supongo que el cuerpo del mensaje q quiero enviar, q es en HTML, podré enviarlo igualmente, no??
Si, basta con utilizar IsHTML(true);

Cita:
La librería tiene versiones?? hay algún sito oficial donde descargármela??
Si el sitio oficial para descargar es: http://sourceforge.net/projects/phpm...Mailer%20v5.1/

Cita:
Otra cosilla, el SMTP es con los datos del servidor donde estará alojada la web, no??
No, en concreto donde tienes el correo; gmail, yahoo, a no ser que tengas tu propio servidor smtp.

Cita:
Y q es el SSL?? (Es q estoy un poco pez!! jejejjejee)
Envíame mensajes mediante conexión segura.

Saludos.
__________________
Twitter: @ed33x

Etiquetas: llega, mail
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 20:22.