Initial production backup
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
<?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();
|
||||
?>
|
||||
Reference in New Issue
Block a user