Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2010, 10:14
MikiBroki
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 9 meses
Puntos: 8
PHPMailer... no entiendo por qué funciona

Buenas,

Lo primero comentar por si alguien le sirve de ayuda cómo he logrado usar GMail con PHPMailer: tras los cambios en GMail y que comencé a usar PHPMailer ha sido un quebradero de cabeza, pues cambió la forma de conectar, y no funciona el código que viene en la web oficial de PHPMailer... hasta que por casualidad me función comentando la línea:

//$mail->IsSMTP();

Una vez lo solucioné, vengo a plantear una duda que tengo de POR QUÉ FUNCIONA este código, pues funciona quitando los datos de una cuenta existente (usuario y password) que se supone (según los ejemplos que he visto) que se usa para el envío.

Y si pongo unos datos no válidos, funciona también.

Y también poniendo: "$mail->SMTPAuth = false;" en lugar de true.

Los correos llegan desde GMail, lo he comprobado.

ACTUALIZADO: sigo investigando y veo que los correos se están enviando a través de mi proveedor de hosting, en enviado por pone una cadena terminada en "secureserver.net" que es de mi hosting (es esto normal?). Mirando el php.ini del hosting ponia "SMTP = relay-hosting.secureserver.net" y lo cambié a "SMTP = smtp.google.com" pero sigue todo igual... el envío se hace siempre desde secureserver... estoy confuso y no se si se me escapa algo :)

Código:
$mail = new PHPMailer();

// DATOS SERVIDOR CORREO:
$mail->Host = "smtp.gmail.com";

$mail->SMTPAuth = true;	// Indicamos que el servidor requiere autenticación

$mail->SMTPSecure = "tls";
$mail->Port = "587";

//$mail->IsSMTP();	// Por alguna razón si no se quita, da error ¿?

// DATOS ACCESO SERVIDOR CORREO: ¿por que funciona comentándolo??
//$mail->Username = "[email protected]";
//$mail->Password = "poner_el_password";

// FROM (nuestra dirección de correo y el nombre que queremos que vea el usuario que lee nuestro correo):
$mail->From = "[email protected]";
$mail->FromName = "nombre_remitente";

// DESTINATARIO:
$mail->AddAddress("[email protected]", "DESTINATARIO");

// ASUNTO:
$mail->Subject = "el_asunto";

// CUERPO:
$mail->IsHTML(true);

// ... si el proveedor de correo de destino no soporta HTML
$mail->AltBody = "el mensaje aqui";

// ... en HTML
//$mail->Body = "<b>el mensaje aqui</b>";

// DEBUG
$mail->SMTPDebug = 2;

if(!$mail->Send()) {
    echo "error!";
} else {
    echo "ok!";
}

Última edición por MikiBroki; 23/04/2010 a las 10:40