Cómo configurar XAMPP para enviar correos electrónicos desde localhost en windows con gmail en 2023

¿Estás buscando como configurar XAMPP para enviar emails con Gmail en 2023 desde localhost? Con los pasos que indico a continuación podrás hacerlo de forma fácil y rápida.

Antes de configurar los archivos que se indican, recuerda de apagar el sevidor apache de tu XAMPP y volverlo a iniciar una vez guardados los cambios para que surjan efecto.

1.- Configurar php.ini

El primer paso es acceder a la configuración de PHP de nuestro servidor local XAMPP. Para ello tendrás que ir al archivo php.ini en el directorio C:\xampp\php\php.ini

*Nota: La ruta de los archivos dependerá de donde tengas instalado XAMPP, podrá variar si lo instalaste en un disco diferente de C: o en un directorio distinto al estándar.

  • Una vez abierto el archivo con un editor de texto tendrás que habilitar la siguientes extensiones: ;extension=php_openssl.dll (Se habilita quitándole el ; que tiene antes.)
Encontrar las siguientes lineas, habilitarlas si están deshabilitadas y configurar-las con los siguientes datos:
  • SMTP=smtp.gmail.com
  • smtp_port=587
  • sendmail_from=tu_email@gmail.com
  • sendmail_path="\"C:\xampp\sendmail\sendmail.exe\" -t"
En el caso anterior ten cuidado y pega las comillas tal cual se indican en el ejemplo.

2.- Configurar sendmail.ini

Una vez configurado el archivo php.ini pasaremos a configurar el archivo sendmail.ini que podremos encontrarlo en el siguiente directorio: C:\xampp\sendmail\sendmail.ini

Lo abrimos con un editor de texto y lo configuramos de la siguiente forma:

  • smtp_server=smtp.gmail.com
  • smtp_port=587
  • error_logfile=error.log
  • debug_logfile=debug.log
  • auth_username=tu_email@gmail.com
  • auth_password=contraseña_de_aplicacion_generada_en_el_paso_siguiente
  • force_sender=tu_email@gmail.com

Una vez configurados estos pasos nos faltará por completar el campo auth_password para el cual tendremos que obtener una contraseña de aplicación que se indica en el siguiente paso.

3.- Generar una contraseña de aplicación en tu cuenta de Google

Para poder conectar una aplicación, en este caso enviar emails, en el 2023 tendremos que crear una Contraseña de Aplicación desde nuestra cuenta de Google primero, ya que por cambios de seguridad, eliminaron la opción de permitir el acceso de aplicaciones no seguras que había anteriormente.

Para obtenerla tendremos que seguir las siguientes instrucciones:

3.1- Ir a tu Cuenta de Google.

3.1.1- Acceder al apartado de "Seguridad".

3.1.2- Habilitar en el apartado de "Cómo inicias sesión en Google" la "Verificación en 2 pasos".


3.1.3- Una vez habilitado, entrar en el apartado de Verificación en dos pasos y al final de la página localizar el bloque de "Contraseñas de aplicaciones".




3.1.4- Accedemos al bloque y generamos una nueva contraseña de tipo Correo y Ordenador con Windows.



Una vez pulsamos en GENERAR nos mostrará en una ventana la contraseña creada para nuestra aplicación.

La contraseña será algo así como: bfuzgdcwlqnyhfyf y una vez generada la pegamos en auth_password de nuestro archivo sendmail.ini .

4.- Enviar email desde PHP en XAMPP

Tras realizar todos los pasos anteriores, reinicia el XAMPP para aplicar los cambios.

Pegamos en un archivo PHP el siguiente código para comprobar que el envío de emails funciona correctamente:

<?php
      $to_email = "tu_email@gmail.com";
      $subject = "Email Test mediante PHP";
      $body = "Hola, esto es una prueba de envío por mail desde XAMPP";
      $headers = "De: sender\'s email";

     if (mail($to_email, $subject, $body, $headers)) {
         echo "Email enviado correctamente a $to_email...";
     } else {
            echo "Email fallo al enviar...";
     }
?>

Comentarios

Anónimo ha dicho que…
Probé varios tutoriales antes de encontrar el tuyo y no lo conseguí. De esta forma, conseguí que funcione. Muchas gracias.
Amilkar Ferrá Díaz ha dicho que…
Muchas gracias amigo acá el enlace para permitir que las aplicaciones menos seguras puedan enviar correo desde gmail directamente. Si estas loggeado por supuesto...

permitir enviar correo con aplicaciones menos seguras
Unknown ha dicho que…
Llevo buscando esto como el Santo Grial.
Con ningun tutorial he conseguido mandar email desde localhost asta ahora con el tuyo.
Muchisimas MUCHISIMAS GRACIAS.

Un cordial saludo.
Heliut ha dicho que…
Hice todo lo que indicas me sale el siguiente error.

Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in C:\xampp\htdocs\sistemawebconagua\login\PHPMailer\class.smtp.php on line 356
Anónimo ha dicho que…
asd
Anónimo ha dicho que…
hola amigo muchas gracias, por compartir su conocimiento, me sirvió mucho fecha 04/10/2019 a las 11:26
Oscar ha dicho que…
buena tarde amigo,

Cual seria el codigo php para enviar el email. es curioso pero con estos cambios no puedo enviar ningun email .

Saludos cordiales
לא נאמן ha dicho que…
Hola me dice que lo manda, pero en webmail de google no aparece el correo
help me
AT ha dicho que…
Hola,
Te dejo un link a un post con el codigo php para enviar email
AT ha dicho que…
Acuerdate de dar acceso de aplicaciones poco seguras. Si estas loggueado en el navegador
Clica aqui
Raul ha dicho que…
Hola, sabes por que motivo no tengo el directorio senmail
Raul ha dicho que…
sendmail quise decir
Anónimo ha dicho que…
Cual fue el error?
Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. 106sm269149oth.63 - gsmtp in C:\xampp\htdocs\Escuela\directorio\send_email.php on line 21
Unknown ha dicho que…
ME FUNCIONO!! GRACIAS MIL!!
Marco A. Marin ha dicho que…
segun envia pero nunca aparece en bandeja de salida y menos llega a destino,
en el debug sale los siguiente:

20/10/27 17:54:02 ** HALT: Mail Sender's Email is empty!
Anónimo ha dicho que…
Hola buen día, saludos desde Colombia, gracias por tomarte el tiempo de compartir tu conocimiento, me funciono ok.
Anónimo ha dicho que…
Hola buen día, excelente el post, pero sigue sin funcionarme :-(
Anónimo ha dicho que…
Alguien podria ayudarme por favor a confirgurarlo para Mac?
Muchas Gracias!
Hastig ha dicho que…
Perfectamente explicado, gracias
Rafael ha dicho que…
Orale.... Graciasssss.... Fue todo un exito... graciass....
lamerci ha dicho que…
Al dar a aceptar , se envían automáticamente todos los correos. Esta característica de Office no permite enviar correos con copia oculta o a varias personas, sino que envía un correo a cada uno de los destinatarios. Es importante que alguno de los correos no esté todavía en la bandeja de salida noticiasdesanxenxo.es/biografia-de-miyeon/
Unknown ha dicho que…
muchas gracias, con estas indicaciones en envió de correos funciono
Unknown ha dicho que…
Buenas, tengo el siguiente problema
Prohibido
No tienes permiso para acceder a este recurso.

Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.2 Servidor en localhost Puerto 80
Anónimo ha dicho que…
muy util!