2012-03-28 30 views
6

Estoy usando la clase phpmailer para enviar correos electrónicos. Actualmente, gmail y yahoo no marcan los correos electrónicos como correo no deseado, pero siempre lo hace. ¿Cómo puedo prevenir esto? Mi código está abajo.PHPmailer enviando correo a spam en hotmail. ¿como arreglar?

require_once('../PHPMailer/class.phpmailer.php'); 
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded 

$mail = new PHPMailer(); 

$mail->IsSMTP(); // set mailer to use SMTP 
$mail->Host = "mail.example.com"; // specify main and backup server 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "xxx"; // SMTP username -- CHANGE -- 
$mail->Password = "xxx"; // SMTP password -- CHANGE -- 
$mail->Port = "25"; // SMTP Port 

$mail->From = "[email protected]"; //From Address -- CHANGE -- 
$mail->FromName = "xxx"; //From Name -- CHANGE -- 
$mail->AddAddress($email, $passerusername); //To Address -- CHANGE -- 
$mail->AddReplyTo("[email protected]", "xxx"); //Reply-To Address -- CHANGE -- 

$mail->WordWrap = 50; // set word wrap to 50 characters 
$mail->IsHTML(false); // set email format to HTML 

$mail->Subject = "AuthSMTP Test"; 
$mail->Body = "AuthSMTP Test Message!"; 

if(!$mail->Send()) 
{ 
    echo "Message could not be sent. <p>"; 
    echo "Mailer Error: " . $mail->ErrorInfo; 
    exit; 
} 

echo "Message has been sent"; 
+0

Probablemente cosas como registros de servidor SPF, DNS inverso, y similares. (No es muy útil, lo sé, pero esta es la razón por la cual es un comentario!) – jprofitt

+0

también si ayuda, uso un servidor vps, no uno compartido con hostgator – Anonymous

+1

¿Se supone que las direcciones 'From' y' AddReplyTo' son diferentes o ¿Es eso un error tipográfico? Si tiene eso en su código actual, puede provocar que el correo se filtre como correo no deseado. –

Respuesta

16

Esto implica establecer algunos encabezados de correo para superar los filtros.

he añadido lo siguiente al inicio de programas de correo php CreateHeader método ...

$result = ''; 

$result .= $this->HeaderLine("Organization" , SITE); 
$result .= $this->HeaderLine("Content-Transfer-encoding" , "8bit"); 
$result .= $this->HeaderLine("Message-ID" , "<".md5(uniqid(time()))."@{$_SERVER['SERVER_NAME']}>"); 
$result .= $this->HeaderLine("X-MSmail-Priority" , "Normal"); 
$result .= $this->HeaderLine("X-Mailer" , "Microsoft Office Outlook, Build 11.0.5510"); 
$result .= $this->HeaderLine("X-MimeOLE" , "Produced By Microsoft MimeOLE V6.00.2800.1441"); 
$result .= $this->HeaderLine("X-Sender" , $this->Sender); 
$result .= $this->HeaderLine("X-AntiAbuse" , "This is a solicited email for - ".SITE." mailing list."); 
$result .= $this->HeaderLine("X-AntiAbuse" , "Servername - {$_SERVER['SERVER_NAME']}"); 
$result .= $this->HeaderLine("X-AntiAbuse" , $this->Sender); 

que se hizo hace algún tiempo - no he revisado por alrededor de un año creo! Pruébalo y regresa si todavía tienes problemas.

+0

¡Gran solución! Funciona. –

+0

¡si pudieras aceptar como respuesta, estaría loco! (La gente lo ve cuando aceptas respuestas - obtienen crédito y obtienes una mejor reputación) –

+0

¡No soy dueño de la pregunta, hombre!)) –

Cuestiones relacionadas