<?php
header('Content-Type: application/json; charset=utf-8');
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode([
'ok' => false,
'message' => 'Método no permitido'
]);
exit;
}
$data = json_decode(file_get_contents('php://input'), true);
if (!$data || !is_array($data)) {
http_response_code(400);
echo json_encode([
'ok' => false,
'message' => 'Datos inválidos'
]);
exit;
}
$nombre = trim($data['nombre'] ?? '');
$apellido = trim($data['apellido'] ?? '');
$email = trim($data['email'] ?? '');
$telefono = trim($data['telefono'] ?? '');
$seguro = trim($data['seguro'] ?? '');
$mensaje = trim($data['mensaje'] ?? '');
$privacidadAceptada = !empty($data['privacidadAceptada']);
$source = trim($data['source'] ?? 'nuvva-landing');
$submittedAt = trim($data['submittedAt'] ?? date('c'));
if ($nombre === '' || $apellido === '' || $email === '' || $seguro === '') {
http_response_code(400);
echo json_encode([
'ok' => false,
'message' => 'Faltan campos obligatorios'
]);
exit;
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
http_response_code(400);
echo json_encode([
'ok' => false,
'message' => 'Correo inválido'
]);
exit;
}
if (!$privacidadAceptada) {
http_response_code(400);
echo json_encode([
'ok' => false,
'message' => 'Debes aceptar la política de privacidad'
]);
exit;
}
require __DIR__ . '/PHPMailer/src/Exception.php';
require __DIR__ . '/PHPMailer/src/PHPMailer.php';
require __DIR__ . '/PHPMailer/src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
try {
$mail->CharSet = 'UTF-8';
$mail->isSMTP();
$mail->Host = 'mail.nuvva.cl';
$mail->SMTPAuth = true;
$mail->Username = 'contacto@nuvva.cl';
$mail->Password = 'Nuvva.1598';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;
$mail->setFrom('contacto@nuvva.cl', 'Nuvva');
$mail->addAddress('contacto@nuvva.cl');
$mail->addAddress('dvillalobos@nuvva.cl');
$mail->addReplyTo($email, trim($nombre . ' ' . $apellido));
$mail->isHTML(false);
$mail->Subject = 'Nuevo lead desde Nuvva';
$body = "";
$body .= "Nuevo formulario recibido desde Nuvva\n";
$body .= "=====================================\n\n";
$body .= "Nombre: " . $nombre . " " . $apellido . "\n";
$body .= "Correo: " . $email . "\n";
$body .= "Teléfono: " . ($telefono !== '' ? $telefono : 'No informado') . "\n";
$body .= "Seguro de interés: " . $seguro . "\n";
$body .= "Mensaje: " . ($mensaje !== '' ? $mensaje : 'Sin mensaje') . "\n";
$body .= "Privacidad aceptada: Sí\n";
$body .= "Origen: " . $source . "\n";
$body .= "Fecha envío: " . $submittedAt . "\n";
$mail->Body = $body;
$mail->send();
echo json_encode([
'ok' => true,
'message' => 'Enviado correctamente'
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode([
'ok' => false,
'message' => 'No se pudo enviar el correo'
]);
}
To embed this project on your website, copy the following code and paste it into your website's HTML: