Post actualizado el día octubre 29, 2026 by DeiviSanzPlay
Cuando alguien intenta XAMPP configurar correo local sendmail, suele encontrar el mismo consejo repetido en foros: edita sendmail.ini, pon smtp_server=smtp.gmail.com, tus credenciales, y listo. Ese consejo es el mito. No es que sea completamente falso, es que omite la parte que importa. XAMPP configurar correo local sendmail no convierte tu máquina en un servidor de correo: activa un cliente que reenvía a un SMTP real.
La confusión nace del nombre. La carpeta xamppsendmail contiene sendmail.exe, pero en Windows no hay un demonio sendmail como en Linux. Lo que hace es leer sendmail.ini y reenviar cada mensaje a un servidor externo. Si no hay un servidor externo configurado correctamente, PHP devuelve success y el correo nunca sale.
Por qué el mito del correo local persiste
El mito se sostiene porque el error es silencioso. mail() devuelve true, el log de Apache no muestra nada, y el desarrollador asume que el correo se envió. En realidad, sendmail.exe falló al autenticarse o el puerto estaba bloqueado. La prueba real: revisa xamppsendmailsendmail.log después de cada envío. Si no aparece una línea de éxito con el código 250, el mensaje no salió.
Otro motivo: muchos tutoriales copian la configuración de Gmail de hace años. Gmail desactivó el acceso con contraseña normal para cuentas nuevas y exige contraseña de aplicación o autenticación OAuth. Si sigues el tutorial tal cual, XAMPP configurar correo local sendmail fallará en el paso de autenticación sin un mensaje claro.
Qué sí funciona y qué no con sendmail en XAMPP
Funciona para pruebas controladas: recibir correos de recuperación de contraseña en un entorno local, verificar plantillas HTML, o comprobar que un formulario dispara la función mail(). No funciona para envíos masivos, para correos a dominios con SPF estricto, ni para producción. Tampoco funciona si tu proveedor de internet bloquea el puerto 25 saliente, algo común en conexiones residenciales.
Un caso concreto: un desarrollador configuró sendmail.ini con el SMTP de su hosting, puerto 587 y STARTTLS. Los correos llegaban a su propia cuenta pero no a Gmail. El motivo era que el hosting no tenía configurado SPF para su dominio local. La solución no fue tocar sendmail, sino usar MailHog o Mailpit para capturar los correos localmente sin enviarlos.
La alternativa que casi nadie menciona
Para desarrollo local, un capturador de correo como Mailpit o MailHog es más honesto que XAMPP configurar correo local sendmail. Levantas el binario, apuntas PHP a localhost:1025 y ves todos los correos en una interfaz web. No dependes de credenciales externas, no hay bloqueos de puerto y no hay falsos positivos. Sendmail queda para casos donde necesitas probar el flujo completo contra un SMTP real.
Si insistes en sendmail con un SMTP real, verifica tres cosas antes de culpar a XAMPP: que el puerto elegido no esté bloqueado por el firewall, que la contraseña de aplicación sea correcta, y que el archivo sendmail.ini tenga la ruta correcta en php.ini (sendmail_path). Un error tipográfico en esa ruta hace que PHP ignore sendmail por completo.
Limitaciones que conviene aceptar
XAMPP configurar correo local sendmail no es una solución de correo local en sentido estricto. Es un puente hacia un servidor externo. Si esperas que los correos se entreguen sin conexión a internet o sin un proveedor SMTP, no va a pasar. Esa expectativa es la raíz del mito.
La documentación oficial de XAMPP y la de PHP sobre mail() describen el mecanismo, pero no prometen entrega. Cualquier guía que asegure que los correos llegarán siempre a la bandeja de entrada está omitiendo la dependencia del proveedor SMTP y de las políticas antispam del destinatario.
Perfiles verificables: Sitio web
Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.