Hola tal cual como dice chudux, me ha pasado por ejemplo que yahoo no me tomaba los correos de una aplicación porque tenian en lista negra al server, tuve que hacer el reclamo al mismo soporte de yahoo y hasta terminar migrando a otro server el site. Pero la mail() funcionaba perfecto.
Es decir si te hace el envío a algunos ya está, funciona. El filtro de algunos servidores puede estar desviando como spam a tu envío.
En yahoo hasta 20 hs me demoró en entrar un correo enviado asi.
Bueno suerte tal vez mi aporte no es gran cosa, pero te cuento que me había vuelto loco tratando de solucionar ese problema y leyendo y leyendo en google me di cuenta que no era el único.
Código PHP:
<?php
require("class.phpmailer.php");
if ($_POST['action'] == "send") {
$varname = $_FILES['archivo']['name'];
$vartemp = $_FILES['archivo']['tmp_name'];
$mail = new PHPMailer();
$mail->Host = "localhost";
$mail->From = "[email protected]"; //mail que envía
$mail->FromName = "EMPRESA";
$mail->Subject = $_POST['asunto']; //aca tomo del formu
$mail->AddAddress($_POST['destino']); //aca tomo del formu
if ($varname != "") {
$mail->AddAttachment($vartemp, $varname);
}
$body = "<strong>Mensaje</strong><br><br>";
$body.= $_POST['mensaje']."<br>";
$body.= "<i>Enviado por http://www.dominio.com.ar . </i></p>
<p><i>Si no desea recibir mas información, responda este correo con asunto ELIMINAR.</i>
</p>";
$mail->Body = $body;
$mail->IsHTML(true);
$mail->Send();
}
echo "su mensaje ha sido enviado satisfactoriamente";
?>