Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2010, 15:29
Avatar de xalupeao
xalupeao
 
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
PHPmailer SPAM

Bueno amigos les cuento es bien extraño.

tengo esta funcion para enviar el mail por phpmailer

Código PHP:
#Funcion que envia el Mail via SMTP
function envia($destinatario,$asunto,$cuerpo,$headers){

    
//Definimos las variables globales
    
global $smtp_user,$smtp_pass,$smtp_host,$from,$realname,$mail;
    
//Definimos las propiedades y llamamos a los métodos 
    //correspondientes del objeto mail
    
$mail->IsSMTP();
    
//Con la propiedad Mailer le indicamos que vamos a usar un 
    //servidor smtp
    
$mail->Mailer    "smtp";
    
    
//Puerto que usaremos
    
$mail->Port=25;
    
    
//Asignamos a Host el nombre de nuestro servidor smtp
    
$mail->Host $smtp_host
    
    
//Le indicamos que el servidor smtp requiere autenticación
    
$mail->SMTPAuth true;
    
    
//Le decimos cual es nuestro nombre de usuario y password
    
$mail->Username $smtp_user
    
$mail->Password $smtp_pass
    
    
//Indicamos cual es nuestra dirección de correo y el nombre que 
    //queremos que vea el usuario que lee nuestro correo
    
$mail->From $from///////////////////ESTO ES EL PROBLEMA /////////////
    
$mail->FromName $realname
    
    
//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
    //una cuenta gratuita, por tanto lo pongo a 30  
    
$mail->Timeout=10;
    
    
//Indicamos cual es la dirección de destino del correo
    
$mail->ClearAllRecipients();
    
$mail->AddAddress($destinatario);
    
    
//Asignamos asunto y cuerpo del mensaje
    //El cuerpo del mensaje lo ponemos en formato html, haciendo 
    //que se vea en negrita
    
    //hacemos unos cambios para ver que onda
    
$cuerpo stripslashes ($cuerpo);
    
$cuerpo_text str_replace ('</p>''
    
    '
$cuerpo);
    
$cuerpo_text str_replace ('<br>''
    '
$cuerpo_text);
    
$cuerpo_text strip_tags ($cuerpo_text);
    
    
$mail->Subject $asunto;
    
    
$mail->Body $cuerpo;
    
    
//Definimos AltBody por si el destinatario del correo no admite email con formato html 
    
$mail->AltBody $cuerpo_text;
    
    
//se envia el mensaje, si no ha habido problemas 
    //la variable $exito tendra el valor true
    
$exito $mail->Send();
    
    
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho 
    //para intentar enviar el mensaje, cada intento se hara 5 segundos despues 
    //del anterior, para ello se usa la funcion sleep    
    
$intentos=1
    while ((!
$exito) && ($intentos 5)) {
    
sleep(5);
        
//echo $mail->ErrorInfo;
        
$exito $mail->Send();
        
$intentos=$intentos+1;    
    
    }
    
    if(!
$exito)
    {
    
$mensaje .= "Problemas enviando correo electrónico a &nbsp;".$valor;
    
$mensaje .= "<br>".$mail->ErrorInfo;    
    }

vean la linea esta:

$mail->From = $from; ///////////////////ESTO ES EL PROBLEMA /////////////

si el FROM no es el usuario SMTP llega automaticamente como spam.

¿Porqué?
¿alguna solución?