Cover Image

Cómo enviar correos electrónicos con PHP (fácil y paso a paso)

Marzo 27, 2025 - Tiempo de lectura: 13 minutos

¿Quieres que tu sitio web pueda enviar correos automáticos? ✉️
Con PHP es totalmente posible y relativamente fácil. Ya sea para enviar un mensaje desde un formulario de contacto o una notificación a un usuario, este lenguaje te permite hacerlo sin usar servicios externos (aunque también se puede).

Hoy te muestro cómo enviar correos en PHP con funciones nativas y también cómo hacerlo de forma más profesional con PHPMailer.


🛠️ Opción 1: Enviar correo con la función mail()

Esta función viene incluida en PHP y es muy simple de usar. Aquí va un ejemplo básico:

<?php $para = "ejemplo@correo.com"; $asunto = "Saludos desde mi sitio web"; $mensaje = "¡Hola! Este correo fue enviado desde un script PHP."; $encabezados = "From: tu_nombre@tudominio.com"; if (mail($para, $asunto, $mensaje, $encabezados)) { echo "✅ Correo enviado correctamente."; } else { echo "❌ Error al enviar el correo."; } ?>

📌 Importante: esta función solo funciona si tu servidor tiene configurado un servicio de correo (como sendmail o postfix). En muchos hostings compartidos sí funciona, pero en localhost no.


💼 Opción 2: Usar PHPMailer (más recomendado)

PHPMailer es una biblioteca profesional para enviar correos en PHP. Te permite usar SMTP (como Gmail) y manejar HTML, archivos adjuntos y más.

🔽 Paso 1: Instalar PHPMailer con Composer

composer require phpmailer/phpmailer

📤 Paso 2: Script básico con Gmail

<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'vendor/autoload.php'; $mail = new PHPMailer(true); try { // Configuración del servidor $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'tucorreo@gmail.com'; $mail->Password = 'tu_contraseña_o_token_app'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; // Remitente y destinatario $mail->setFrom('tucorreo@gmail.com', 'Tu Nombre'); $mail->addAddress('destino@correo.com'); // Contenido $mail->isHTML(true); $mail->Subject = 'Correo de prueba con PHPMailer'; $mail->Body = 'Este es un <b>correo de prueba</b> enviado con PHPMailer en PHP.'; $mail->send(); echo '✅ El mensaje fue enviado exitosamente.'; } catch (Exception $e) { echo "❌ El mensaje no pudo enviarse. Error: {$mail->ErrorInfo}"; } ?>

📌 Consejo de seguridad: Usa un token de aplicación en lugar de tu contraseña real al usar Gmail. También asegúrate de que tu cuenta permita apps externas.