<?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'
    ]);
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: