Una de las cosas que más he oído quejarse a la gente, es no poder hacer uso de los emails de WordPress con xampp, o cualquier gestor de contenidos en modo local en el ordenador personal. Tal vez por no saber hacerlo o por desconocimiento. Podemos configurar XAMPP para enviar Emails de WordPress en unos pocos minutos.
Configurar XAMPP y Sendmail para habilitar los emails de WordPress
Antes de configurar Mercury para enlazar la instalación de WordPress con un servidor de correo, debemos tener instalado Xampp. Podéis ver todos los pasos de cómo hacerlo desde este enlace.
Modificar el archivo "php.ini" para enviar emails de WordPress con xampp
El primer paso es modificar y descomentar algunas líneas del archivo php.ini, al que accedemos desde el panel de control de Xampp pinchando en la fila de Apache y botón "Config".
Al abrirse el archivo en el bloc de notas, tenemos que buscar la parte donde está la configuración del mail poniendo en el buscador "mail function".

Las líneas a modificar, o comprobar sus valores, son las siguientes:
- SMTP=localhost
- smtp_port=25
- sendmail-from=postmaster@localhost
- sendmail_path="\"C:\xampp\sendmail\sendmail.exe\" -t"
Modificar el archivo "sendmail.ini" para enviar Emails de WordPress
El archivo "sendmail.ini" se encuentra dentro de los archivos de instalación de Xampp, en concreto en "\xampp\sendmail\sendmail.ini". El cambio que hay que hacer en este archivo es mínimo.

Lo editamos con el bloc de notas y modificamos el siguiente valor:
- smtp_server=localhost
Configurar la aplicación Mercury de XAMPP
Desde el panel de control ejecutamos la aplicación Mercury para convertir el ordenador en un servidor de correo local que conecte con un servidor externo como el de Gmail, por ejemplo.

Configuración general de Mercury
1.- Configuramos las opciones que vamos a necesitar en "Configuration>Protocol modules".
- Desmarcar:
- MercuryE SMTP end-to-ends
- MercuryI IMAP4rev1 server
- MercuryB HTTP web server
- Activar:
- MercuryC SMTP relaying client
- Aceptamos con OK.
2.- Abrimos "Configuration>Mercury core module".
- Nos aseguramos que estamos en la pestaña "General".
- En Internet name for this system ponemos "localhost".
- El resto de campos vienen pre configurados y no hay que modificar nada.
- Desactivamos todas las casillas menos "Send copies of all errors to the postmaster"
- Aceptamos y cerramos.
3.- Para que aparezcan las opciones de configuración que hemos marcado, tenemos que cerrar la aplicación y volver a arrancarla desde el panel de control de Xampp.
Configuración los servidores SMTP y POP3
4.- Configurar el servidor SMTP desde "Configuration>MercuryS SMTP Server".
- Pestaña General:
- Añadimos un nombre cualquiera en Announce myself as.
- El puerto TCP/IP debe ser 25.
- En "IP interface to use" ponemos la de nuestro ordenador que es 127.0.0.1
- Pestaña Connection control:
- Pinchamos en Add restriction y añadimos nuestra IP, 127.0.0.1 en las dos casillas para limitar el acceso a sólo tu ordenador, nos aseguramos de que está marcado Allow connections y todas las casillas desactivadas.
- Pinchamos en OK y salimos.
- Desactivamos todas las casillas del apartado "Relaying control" de la pestaña "Connection control".
- Aceptamos para salir.
5.- Configurar el servidor POP3 pinchando en "Configuration>MercuryP POP3 server".
- Pestaña General:
- Comprobar que TCP port es 110.
- Si no está puesta, poner la IP 127.0.0.1
- Pestaña Connection control:
- Añadimos la restricción a nuestro ordenador igual que lo hicimos con el SMTP, pinchamos en Add restriction y añadimos nuestra IP, 127.0.0.1 en las dos casillas
- Aceptamos y salimos.
Configuración del cliente SMTP y el correo
6.- Configurar el cliente SMTP:
Para configurar este apartado utilizaré una cuenta de gmail, he probado con hotmail y outlook y no han funcionado. Para recibir los correos en gmail, tendremos que activar, en la cuenta de correo, el "acceso de aplicaciones menos seguras". Podéis ver cómo se hace en el siguiente apartado.
Accedemos al menú "Configuración>MercuryC SMTP Client"
- En Smart host name colocamos el servidor smtp de google que es smtp.gmail.com
- Cambiamos el puerto por el 587 y seleccionamos el protocolo STARTLS
- Añadimos nuestra cuenta y contraseña de gmail y pinchamos en OK. Si no los introducimos bien, puede darnos un error de e-mail o password incorrectos.
7.- Configurar los usuarios del servidor de correo.
El último paso es añadir a wordpress como administrador para que pueda gestionar los correos.
- Picamos en "Configuration>Manage local users..." y añadimos el usuario "wordpress".
- Nos aseguramos que estén incluidos como usuarios administradores "Admin" y "postmaster".
8.- Probamos la configuración para comprobar que funciona, abrimos una web que tengamos en localhost y mandamos un correo desde un formulario de contacto, o pedimos una nueva contraseña. Si recibimos emails de WordPress con xampp, habremos terminado, de lo contrario hay que repasar todos los pasos para ver su nos hemos equivocado en alguno.
Permitir el acceso de aplicaciones menos seguras desde Gmail
Este paso es importante para que los emails de WordPress con xampp lleguen a su destinatario cuando usamos un correo de Gmail con Mercury, al ser una aplicación externa que quiere conectar con tu cuenta de google para usar sus servicios, está considerada como aplicación menos segura.
Ir a la administración de la cuenta de Google
Y digo de Google porque no son las opciones del correo de Gmail, sino de la cuenta global de Google. Hay varias formas de acceder a estas opciones, pero la más fácil es abrir G-mail y pinchar sobre el icono de la cuenta y luego en un botón llamado "Mi cuenta".

Activar "Permitir el acceso de aplicaciones menos seguras"
En el apartado de "Inicio de sesión y seguridad", pinchamos en el enlace donde pone "Aplicaciones y sitios conectados a tu cuenta". En la ventana que se abre, hay una opción con un botón para activar o desactivar el acceso de aplicaciones menos seguras. Lo dejamos marcado como "Si" y ya podremos enviar emails de WordPress con xampp y que lleguen a su destinatario.


Muchas gracias me has sido de gran ayuda,
saludos
Manuel
buenas tardes, muchas gracias por el tutorial fue de mucha ayuda, te cuento que tambien lo puse a funcionar con office 365.
Hola Hamilton, me alegro que pudieras utilizar esta información
Excelente aporte
tengo una duda en wordpress me funciono bien, pero ejemplo con un sitio estático que este adaptado con <strong>phpmail</strong> debe llevar la siguiente configuración
$mail->isSMTP();
$mail->Helo='smtp.gmail.com';
$mail->Host = 'smtp.gmail.com.';
$mail->SMTPAuth = true;
$mail->Username = 'correopuente';
$mail->Password = 'contraseñacorreopuente';
$mail->SMTPSecure = 'ssl';
$mail->Port = 25;
$mail->CharSet = "utf-8";
con que datos llenaría la información anterior ?
Gracias por este aporte
Hola Andersson, no he realizado pruebas con webs estáticas ya que sólo trabajo con gestores de contenido como WordPress o Prestashop.
Pero supongo que tendrás que configurar esa información con los datos de conexión del servidor XAMPP. Estos aparecen en el archivo php.ini. El servidor SMTP es "localhost", el puerto de escucha "25", el correo "postmaster@localhost" y no tendría contraseña. De esta forma conectas con Mercury y este se encarga de enviar el correo.
Antes tienes que abrir el archivo php.ini, como indico al principio del artículo y descomentar las siguientes líneas (borrar el ; del principio)
sendmail-from=postmaster@localhost
sendmail_path="\"C:\xampp\sendmail\sendmail.exe\" -t"
No puedo asegurarte que funcione ya que no tengo forma de probarlo. Espero que sea así.
Gracias, machiño. Llevaba dos horas de post en post y de vídeo en vídeo volviéndome medio loco hasta encontrar esta fantástica explicación.
Gracias a tus consejos en un plís plás estaba mandando correos a tutiplén.
🙂
Me alegro que te haya podido ayudar.