Estás probando un formulario de contacto o un registro de usuarios en tu PC y el correo nunca llega. Es normal: en tu entorno local no hay un servidor de correo, y mail() de PHP no tiene a dónde enviar. La solución más limpia no es configurar un SMTP real (con el riesgo de mandar correos de prueba a clientes de verdad), sino atrapar los mensajes localmente y verlos en una bandeja de entrada falsa. Eso hace Mailpit, y funciona sin instalar ningún plugin de WordPress. Lo probé en Laragon con PHP 8.3 y WordPress 7.1.
Cómo funciona
Mailpit hace dos cosas: abre un servidor SMTP falso (puerto 1025) que recibe cualquier correo sin enviarlo a ningún lado, y una bandeja web (puerto 8025) donde ves lo recibido, con asunto, HTML, texto y cabeceras. PHP, por su parte, entrega el correo a un programa llamado sendmail cuando llamas a mail(). Si le dices a PHP que ese programa es el de Mailpit, todo lo que envíes desde tu código cae en la bandeja.
Paso 1: abre Mailpit
Laragon trae Mailpit en su carpeta de binarios, algo como C:laragonbinmailpit<versión>mailpit.exe. Ábrelo (desde Laragon o ejecutando el archivo) y entra a http://localhost:8025: verás una bandeja vacía.
Paso 2: dile a PHP que use Mailpit
En Laragon abre el menú PHP → php.ini y busca la línea sendmail_path. Cámbiala para que apunte a Mailpit (con la versión que tengas instalada):
sendmail_path = "C:/laragon/bin/mailpit/1.22.3/mailpit.exe sendmail"
Guarda y reinicia Apache. Si Mailpit no corre en el puerto por defecto, se le indica con -S servidor:puerto al final del comando, según su documentación.
Paso 3: pruébalo con PHP
Crea un archivo prueba-correo.php en la carpeta de tu proyecto:
<?php
var_dump( mail( 'destino@ejemplo.test', 'Prueba desde PHP', 'Hola desde mail() en local.', 'From: Mi sitio <sitio@ejemplo.test>' ) );
Ábrelo en el navegador o ejecútalo con php prueba-correo.php. El correo aparece al instante en la bandeja de Mailpit. Yo lo comprobé también sin tocar el php.ini, pasando la ruta con la opción -d:
php -d sendmail_path="C:/laragon/bin/mailpit/1.22.3/mailpit.exe sendmail" prueba-correo.php
Paso 4: WordPress, sin plugins
Aquí viene lo mejor: WordPress ya envía los correos con mail() por defecto, así que con el paso 2 hecho no necesitas ningún plugin SMTP. Para comprobarlo desde WP-CLI, en la carpeta de tu sitio:
wp eval 'var_dump( wp_mail( "lectora@ejemplo.test", "Prueba de WordPress", "Salió de wp_mail()." ) );'
En una prueba aparte con el método por defecto de WordPress (sin ningún código mío en medio), el correo llegó a Mailpit con el remitente wordpress@tu-dominio.test. Eso sirve para recuperar contraseñas, notificaciones y formularios mientras desarrollas.
Otra forma: apuntar WordPress directo al SMTP de Mailpit
Si prefieres que WordPress hable con el SMTP de Mailpit en vez de pasar por mail(), basta un archivo en wp-content/mu-plugins/ (un archivo suelto que WordPress carga solo; no es un plugin que haya que instalar). Esto es lo que uso yo en este sitio, y solo actúa en entornos locales:
<?php
if ( 'local' === wp_get_environment_type() ) {
add_action( 'phpmailer_init', static function ( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = '127.0.0.1';
$phpmailer->Port = 1025;
$phpmailer->SMTPAuth = false;
$phpmailer->SMTPAutoTLS = false;
} );
}
Un detalle que confunde: si Mailpit está apagado
Si Mailpit está cerrado, mail() sigue devolviendo true, pero el correo se pierde: el programa sendmail falla en silencio (en mi prueba escribió un error de conexión rechazada al puerto 1025, que ni PHP ni WordPress muestran). Si "se envió" pero no ves nada, lo primero que hay que revisar es que Mailpit esté abierto.
¿Y en XAMPP?
El mecanismo es el mismo: en php.ini apuntas sendmail_path al ejecutable de Mailpit. Solo cambia la ruta del programa. Esta parte no la probé en XAMPP; lo que sí puedo asegurar es que el método funciona con cualquier PHP que acepte sendmail_path.
Importante: esto es solo para desarrollo
Mailpit no entrega nada a nadie, que es justo lo que quieres en tu PC. En un sitio real necesitas un correo saliente autenticado (SMTP con SPF y DKIM) para que tus mensajes no terminen en spam. Si necesitas ayuda para configurarlo, escríbeme desde la página de contacto. Más guías sobre desarrollo en la categoría Programación.
Referencias
Partí de la pregunta clásica de Stack Overflow, cómo configurar XAMPP para enviar correo desde localhost, y de la documentación de Mailpit. Los pasos y los resultados de esta nota los comprobé yo en Laragon.