Problemas con phpMailer y servidor MSExchange
Sebastián Veloso Varas
sveloso en sevelv.cl
Mar Dic 2 20:22:06 CLST 2008
José Palacio escribió:
> Hola a todos,
>
> Mi problema es el siguiente:
>
> Debo desarrollar una página en php que envie una serie de correos a
> diferentes usuarios registrados en una base de datos de mysql, con
> información única para cada usuario (dicha información está en la base de
> datos), el problema es que el servidor de correo no se encuentra en la misma
> máquina, es más es un servidor de correo en Windows con Microsoft Exchange
> 2007, para hacerlo utilizo la clase phpMailer, con el siguiente código de
> prueba:
>
> <?php
> include_once('class.phpmailer.php');
> $mail = new PHPMailer();
> $mail->IsSMTP();
> $mail->Host = "miservidorExchange";
> $mail->SMTPAuth = true;
> $mail->Username = "cuenta en miservidorExchange";
> $mail->Password = "mipassword";
> $mail->From = "cuenta en miservidorExchange";
> $mail->FromName = "Mi Nombre";
> $mail->Body = "Mensaje"
> $mail->Subject = "PHPMailer Test Subject";
> $mail->AltBody = "To view the message, please use an HTML compatible
> $mail->MsgHTML($body);
> $mail->AddAddress("cuenta en correodestino", "Nombre Destino");
>
> if(!$mail->Send()) {
> echo 'Falla enviando mail ' . $mail->ErrorInfo;
>
> } else {
> echo 'Mail enviado';
> }
>
> ?>
>
> Al probar el script para verificar el envio de prueba me muestra el
> siguiente mensaje de error
>
> SMTP Error: Could not connect to SMTP host.
>
> Que obviamente es un problema de conexión con el servidor Exchange, ahora mi
> pregunta es si el error será en el phpMailer o en El Exchange, la verdad es
> la primera vez que hago esto.
>
> Gracias de antemano
>
>
Hola José,
Lo primero, revisa que tu equipo Linux pueda realizar telnet hacia el
Exchange Server. De ser asi, verifica el tema de relay.
Yo he probado el tema de autenticación SMTP en Exchange con aplicaciones
web, pero la verdad siempre da "lios". Exchange usa otros mecanismos de
autenticacion, como NTLM, Kerberos y hasta sobre IPSEC.
Sugiero que habilites relay al servidor desde donde estas generando el
envio de correo. Para hacerlo :
Abres la consola de Exchange -> Configuracion de Servidores ->
Transporte de Concentradores -> Selecciona en "Conectores de Recepcion"
el "Default". Ábrelo, y selecciona el tab "Red" y agrega
la IP a cual necesitas aplicar el relay. Entonces puedes generar envíos
con el propio MTA del Linux y reenviarlo a tu Exchange.
Saludos Cordiales,
Sebastian Veloso Varas.
Más información sobre la lista de distribución Linux