Hoy voy a contaros un problema que me surgió hace un tiempo en relación a la función “mail” de PHP y la configuración de correos externos para dominios.

Cuando tenemos un dominio web alojado en nuestro servidor, en muchas ocasiones los distintos paneles que existen (PLSK, Webmin, etc) automáticamente generan un usuario propio para el servidor de correo que tengamos instalado (por ejemplo qmail) , de forma que, al dar de alta dicho dominio en el panel, se generan automáticamente unas entradas DNS de tipo MX que determinarán que los correos @dominio.com se envíen desde el mismo servidor en el que está alojada la web.

En muchas ocasiones, para evitar problemas, sobrecargas del servidor, dolores de cabeza, posibles entradas de virus, etc, derivamos esta opción de servidor de correo a servicios externos como los que nos pueden ofrecer Google Apps, Outlook.com o Zoho mailDe esta forma, cambiamos nuestras DNS MX para que nuestro servidor de correo sea gestionado por una de estas tres compañías.

¿Qué problema surge y cuándo?

El problema surge cuando queremos utilizar la función mail de PHP a través de nuestro servidor de qmail / sendmail en una web alojada en dicho dominio.

La tarea que va a realizar nuestro servidor al enviar un email con dicha función es, mandar dicho correo a nuestro buzón de correo @dominio.com dentro de nuestro servidores decir, no va a interpretar las DNS MX que hayamos asignado , con lo cual, no lo recibiremos en nuestro correo configurado con una de las 3 aplicaciones anteriores.

¿Qué solución tenemos?

Muy sencillo, debemos editar los siguientes ficheros y borrar todas las líneas en las que aparezca nuestro dominio para que de esa forma, nuestro servidor qmail / sendmail utilice las entradas MX insertadas por nosotros mismos a la hora de buscar dicho correo, en lugar de utilizar el buzón interno.

Los ficheros son:

/var/qmail/control/virtualdomains
/var/qmail/control/rcpthosts

En el primer fichero buscamos al línea que sea de la siguiente forma:

dominio.com:dominio.com

Y o bien la borramos, o bien hacemos que apunte al servidor MX correspondiente.

De esta forma cuando queramos enviar un correo a través de qmail, funcionará correctamente.