Files
trimape_web/contacto-action.php
2026-07-15 19:45:08 -06:00

103 lines
3.2 KiB
PHP

<?php
// Desactivar la salida de errores para producción
ini_set('display_errors', 0);
error_reporting(E_ALL);
// Iniciar un búfer de salida para capturar cualquier salida no deseada
ob_start();
// Incluir la clase de PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require __DIR__ . '/vendor/autoload.php';
// Obtener los datos del formulario
$nombre = $_POST["nombre"] ?? '';
$email = $_POST["email"] ?? '';
$ciudad = $_POST["ciudad"] ?? '';
$telefono = $_POST["telefono"] ?? '';
$descripcion = $_POST["descripcion"] ?? '';
// Log para depuración (no afecta la salida)
error_log("Datos recibidos: " . print_r($_POST, true));
// Crear una instancia de PHPMailer
$mail = new PHPMailer(true);
try {
// Configurar el servidor SMTP
// Usar la función mail() nativa de PHP configurada por Plesk
// (Eliminamos la configuración de Titan SMTP)
// Configurar el remitente y destinatario
$mail->setFrom('web@trimape.mx', 'Formulario Web Trimape');
$mail->addAddress('contacto@trimape.mx', 'Contacto Trimape');
$mail->addReplyTo($email, $nombre);
// Configurar el asunto y el cuerpo del correo
$mail->isHTML(true);
$mail->Subject = 'Nuevo mensaje de contacto desde el sitio web';
// Crear un cuerpo de correo con los datos del formulario
$mail->Body = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.container { padding: 20px; }
.field { margin-bottom: 10px; }
.label { font-weight: bold; }
</style>
</head>
<body>
<div class='container'>
<h2>Nuevo mensaje de contacto</h2>
<div class='field'>
<span class='label'>Nombre:</span> {$nombre}
</div>
<div class='field'>
<span class='label'>Email:</span> {$email}
</div>
<div class='field'>
<span class='label'>Ciudad del Proyecto:</span> {$ciudad}
</div>
<div class='field'>
<span class='label'>Teléfono:</span> {$telefono}
</div>
<div class='field'>
<span class='label'>Descripción:</span><br>
" . nl2br(htmlspecialchars($descripcion)) . "
</div>
</div>
</body>
</html>";
$mail->AltBody = "Nombre: {$nombre}\nEmail: {$email}\nCiudad: {$ciudad}\nTeléfono: {$telefono}\nDescripción: {$descripcion}";
// Enviar el correo
$mail->send();
// Limpiar cualquier salida anterior
ob_clean();
// Asegurarnos de que no hay salida antes de los headers
header('Content-Type: application/json');
echo json_encode(['success' => true, 'message' => 'Su mensaje ha sido enviado correctamente. Nos pondremos en contacto pronto.']);
} catch (Exception $e) {
// Log del error para el administrador
error_log("Error PHPMailer: " . $mail->ErrorInfo);
// Limpiar cualquier salida anterior
ob_clean();
// Respuesta para AJAX
header('Content-Type: application/json');
echo json_encode(['success' => false, 'message' => "No se pudo enviar el mensaje. Por favor, inténtelo más tarde."]);
}
// Finalizar y limpiar el búfer
ob_end_flush();
?>