Foros del Web » Programando para Internet » PHP »

PhpMailer vs Hotmail!

Estas en el tema de PhpMailer vs Hotmail! en el foro de PHP en Foros del Web. Hola gente, tengo 1 problema, estoy usando hace un tiempo la clase PhpMailer y me funcionaba de 10 (cuando la usaba). Ahora volvi a intentar ...
  #1 (permalink)  
Antiguo 29/03/2010, 16:27
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
PhpMailer vs Hotmail!

Hola gente, tengo 1 problema, estoy usando hace un tiempo la clase PhpMailer y me funcionaba de 10 (cuando la usaba). Ahora volvi a intentar usarla, pero me esta dando dolores de cabeza!!! Me envia los e-mails hacia Yahoo.com sin ningun problema, pero cuando los envio a hotmail.com no llegan nunca, y ni siquiera me da error de nada, me desorienta!

tengo esto en el php:
Código PHP:
require "includes/class.phpmailer.php";

$sitio="misitio.com";

$message .="<div align=\"center\"><img src=\"http://misitio.com/imagenes/misitio.Com.Ar.bmp\" />";
$message .="<a href=\"$sitio\">$sitio</a>";
$message .="<div align=\"center\">Gracias por registrarse en <strong><a href=\"$sitio\">$sitio</a></strong>.</div>";
$message .="<div align=\"center\">Debera guardar este e-mail ya que contiene informacion sobre su cuenta.</div>";
$message .="&nbsp;";
$message .="<div align=\"center\">Usuario: <strong>$username</strong>.</div>";
$message .="&nbsp;";
$message .="<div align=\"center\">Contraseña: <strong>$password</strong>.</div>";
$message .="&nbsp;";
if(
$validate == 1){
$message .="<div align=\"center\">"._YOUR_ACCOUNT_IS_NOT_ACTIVE."</div>";
$message .="<div align=\"center\"><a href=\"#http://www.misitio/users.php?".$code."\">Activar su Cuenta</a>";
$message .="<div align=\"center\">Si no puede seguir el link anterior, copie esto 
http://www.misitio.com/users.php?$code y pegelo en su navegador</div>"
;
}else{
$message .="<div align=\"center\">"._YOUR_ACCOUNT_IS_CURRENTLY_ACTIVE." </div>";

}

$message .="<div align=\"center\">Gracias por registrarse en <strong><a href=\"$sitio\">$sitio</a></strong>.</div>";
$message .="&nbsp;";
$message .="<div align=\"center\"><strong><a href=\"$sitio\">$sitio</a></strong></div>";

$to $email;
$header "From: $site_name <$site_email>\n";
$header .= "Reply-To: $site_email\n\n";
$header .="Content-type: text/html\r\n";

$message  eregi_replace("[\]",'',$message);

if(!
mail($to$subject$message$header)){
                 
                                    echo 
"<div align=center><font color=\"#FF0000\">Error:</font> Fallo el envio de e-mail a: $to</div><br>";
               }else{
               
$fecha=date("d/m/Y H:i");
$motivo="Registro de cuenta";
$mensaje="Se registro $fullname $apellido bajo el nick de $username y pass $password";
$sql="INSERT ignore INTO email (de,para,asunto,mensaje,fecha)    VALUES ('$subject','$to','$motivo','$mensaje','$fecha')";
mysql_query($sql) or die();




Desde ya muchas gracias :=)
  #2 (permalink)  
Antiguo 29/03/2010, 17:20
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: PhpMailer vs Hotmail!

Hola mira yo tuve un problema mas serio y era que los emails me llegaban como SPAM y tambien que no mostraba bien el HTML solo lei tu texto mas no tu espaguetti de codigo. asi que te dejo una ayuda que yo mismo desarrolle basandome en PHPMailer. saludos espero que te sirva.


Código PHP:

function enviar_correo($email_destino,$asunto,$mensaje) {
    
    include(
"librerias/email/class.phpmailer.php");
    include(
"librerias/email/class.smtp.php");

    
$mail = new PHPMailer();
    
$mail->IsSMTP();
    
$mail->SMTPAuth true;
    
$mail->SMTPSecure "ssl";
    
$mail->Host "smtp.gmail.com";
    
$mail->Port 465;
    
$mail->Username "@gmail.com";
    
$mail->Password "tuclaveaqui";

    
$mail->From "@gmail.com";
    
$mail->FromName "GMAIL";
    
$mail->Subject $asunto;
    
$mail->MsgHTML($mensaje);
    
$mail->AddAddress($email_destino"Destinatario");
    
$mail->IsHTML(true);

    if(!
$mail->Send()) {
        echo 
"Error: " $mail->ErrorInfo;
    }
    else {

        echo 
"Mensaje enviado correctamente";
    }

}

  
enviar_correo('[email protected]','prueba GMAIL','IVAN Y LAURA SE AMABAN Y AUN SE QUIEREN DE VERDAD'); 
en el asunto le pasas el HTML y listo cero problemas y de esta manera no llegan como SPAM. y se ve bonito..

OJO recuerda que si envias HTML por email debes poner los CSS directamente en el Documento. no linkearlos desde tu sitio web.

mi asunto era distinto puesto que debia enviar una validacion de un deposito bancario a un X cliente asi que hice una clase la cual usara esta funcion enviar_correo() y me permitiera tener la flexibilidad de usarla alrededor de toda la aplicacion sin copiar y pegar todo ese monton de codigo..

es algo asi

NOTA: ESTOS SON EXTRACTOS DE MI CODIGO FUENTE PARA EXPLICARTE... ESTA CLASE TIENE DEPENDENCIAS DE OTRAS CLASES PARA LOGRAR LO ACOMETIDO ABAJO. ES PARA QUE LO USES COMO MODELO

Código PHP:

public function enviar_confirmacion($cedula,$tipo_mail) {

        
$profesion =  array();
        
$profesion[1] = 'Arquitecto';
        
$profesion[2] = 'Urbanista';
        
$profesion[3] = 'Ingeniero';
        
$profesion[4] = 'Diseñador';

        
$modalidad = array();
        
$modalidad[1] = 'Equipo';
        
$modalidad[2] = 'Individual';

        
$status = array();
        
$status[1] = 'ACEPTADO';
        
$status[2] = 'RECHAZADO';
        
$status[0] = 'SIN VALIDAR';



        if(
$tipo_mail == 'ACTIVAR') {

            
$sql "SELECT
                preinscripcion.nombres,
                preinscripcion.apellidos,
           preinscripcion.clave_unica,
        preinscripcion.profesion,
        preinscripcion.telefono,
        preinscripcion.modularidad,
        preinscripcion.direccion,
        preinscripcion.email,
        lista_estados.nombre_estado,
        lista_sector.nombre_sector,
                bancos.nombre_banco,
                depositos.numero_referencia,
                depositos.numero_cta_elect,
                DATE_FORMAT(depositos.fecha_deposito,'%d-%m-%Y') AS fecha_deposito,
                depositos.status,
                depositos.cedula
                FROM
                depositos, bancos, preinscripcion, lista_estados, lista_sector
                WHERE
                depositos.idbanco = bancos.idbanco
                AND
                depositos.cedula  = preinscripcion.cedula
         AND
        lista_estados.id_estado = preinscripcion.estado
        AND
        lista_sector.id_sector = preinscripcion.ciudad
                AND
        preinscripcion.cedula = $cedula;"
;





            if(
$this->sql($sql)) {

                
$datos $this->array_query();

                if(
$datos['numero_cta_elect'] == '') {

                    
$numero_cta '---';

                } else {
                    
$numero_cta $this->formatear_numero_cuenta($datos['numero_cta_elect']);

                }

                
$asunto  'Respuesta deposito bancario Sr(a) '.$datos['apellidos'].','.$datos['nombres'].'';
                
// inicio
                
$mensaje 'AQUI MI HTML';
                
// fin
                
$email   $datos['email'];

                if(
$this->enviar_correo($email,$asunto,$mensaje)) {
                    return 
true;
                }
                else {
                    return 
false;
                }

            }

        }

// AQUI HAGO USO EFICIENTE DE LAS FUNCIONES PREVIAS enviar_correo() y enviar_confirmacion()

public function activar_cuenta($cedula) {

        
$sql "UPDATE `depositos` SET `status` = '1'
                WHERE  cedula = $cedula
                LIMIT 1 ;"
;

        if(
$this->sql($sql)) {
            
$this->enviar_confirmacion($cedula,'ACTIVAR');
        }
    } 
saludos espero que esto te aclare algo y te ayude a esquematizar mas tu codigo saludos..
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Última edición por eddwinpaz; 29/03/2010 a las 17:28
  #3 (permalink)  
Antiguo 30/03/2010, 07:30
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: PhpMailer vs Hotmail!

antes que nada cometi un error en el titulo del post, no estoy utilizando la clase phpmailer =) sino la funcion mail() de php.

segundo, quedo el include del phpmailer por alguna razon en mi codigo (Cuando lo usaba y funcionaba).

te pido mil disculpas a vos y a los que leyeron este post, por el error cometido, y ahora reformulo mi pregunta.

¿Porque la funcion mail(); de php no me envia e-mails a correos @hotmail.com y si a @yahoo.com?

Muchas gracias.
  #4 (permalink)  
Antiguo 30/03/2010, 07:54
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: PhpMailer vs Hotmail!

No creo que mail() de php no envie a hotmail, eso es aleatorio y no tiene sentido. Mi idea es que hotmail filtra tus correos por que desconoce el origen.

La solución que yo uso es usar Gmail o Homtail o Yahoo! para enviar los correos. Uso una clase de conexión SMTP y los envío. Así no te los rechazan.

No se si PHPMailer tiene la opción de enviar por SMTP, PEAR Mail si lo tiene, y si no, hay bastantes clases libres que permiten el uso de SMTP. Yo tengo una: Clase Amailer
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it
  #5 (permalink)  
Antiguo 30/03/2010, 08:35
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: PhpMailer vs Hotmail!

yo tenia ese problema pero ya lo solucione con las funciones que hice... la verdad es una tortura HOTMAIL Gmail tambien mas o menos.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 30/03/2010, 08:57
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: PhpMailer vs Hotmail!

ok muchas gracias a los dos, voy a probar esa clase amailer!
  #7 (permalink)  
Antiguo 30/03/2010, 10:34
Avatar de AnesGy  
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 14 años, 11 meses
Puntos: 19
Respuesta: PhpMailer vs Hotmail!

La acabo de actualizar, ahora tiene adjuntos (se me ocurrió hace un rato XD).
__________________
Si alguna vez parece que soy grosero, pido perdón, es un intento fallido de ser directo.

AnesGy SD. Name it, Get it

Etiquetas: hotmail, phpmailer
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 00:13.