Si necesitás un formulario de contacto que envíe correos autenticados usando SMTP, podés hacerlo con HTML, PHP y PHPMailer.
1️⃣ Requisitos
- Un servidor con PHP.
- PHPMailer instalado (si usás Composer, instalalo con:
composer require phpmailer/phpmailer
). - Una cuenta de correo SMTP (Gmail, Outlook, etc.).
2️⃣ Formulario en HTML
Crea un archivo index.html
con este código:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contacto</title>
</head>
<body>
<h2>Contacto</h2>
<form action="enviar.php" method="POST">
<label>Nombre:</label>
<input type="text" name="nombre" required><br><br>
<label>Email:</label>
<input type="email" name="email" required><br><br>
<label>Mensaje:</label>
<textarea name="mensaje" required></textarea><br><br>
<button type="submit">Enviar</button>
</form>
</body>
</html>
3️⃣ Código PHP para Enviar el Correo
Crea un archivo enviar.php
con el siguiente código:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php'; // PHPMailer debe estar instalado
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nombre = htmlspecialchars($_POST["nombre"]);
$email = htmlspecialchars($_POST["email"]);
$mensaje = htmlspecialchars($_POST["mensaje"]);
$mail = new PHPMailer(true);
try {
// Configuración del servidor SMTP
$mail->isSMTP();
$mail->Host = 'smtp.tudominio.com'; // Servidor SMTP
$mail->SMTPAuth = true;
$mail->Username = 'tuemail@tudominio.com'; // Email del remitente
$mail->Password = 'tucontraseña'; // Contraseña del remitente
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // o SSL
$mail->Port = 587; // 465 para SSL, 587 para TLS
// Configuración del correo
$mail->setFrom('tuemail@tudominio.com', 'Tu Nombre');
$mail->addAddress('destinatario@ejemplo.com', 'Destinatario');
$mail->Subject = 'Nuevo mensaje de contacto';
$mail->Body = "Nombre: $nombre\nEmail: $email\nMensaje:\n$mensaje";
$mail->send();
echo "Mensaje enviado con éxito.";
} catch (Exception $e) {
echo "Error al enviar el mensaje: {$mail->ErrorInfo}";
}
}
?>
🔒 Consejos de Seguridad
- No guardes contraseñas en el código. Usá variables de entorno.
- Para Gmail: Habilitá «Aplicaciones menos seguras» o usá una contraseña de aplicación.
- Usá TLS o SSL para una conexión segura.
Con este código, tu formulario podrá enviar correos autenticados de manera segura y confiable. 🚀