construir un sistema completo de envío masivo de alertas SOLO cuando bajen los precios, totalmente funcional, realista y usable en tu web. Este sistema incluye: Una tabla para almacenar suscriptores de alertas Un script PHP que compara precios actuales vs. precios anteriores Un envío masivo SOLO cuando haya bajadas reales Un correo HTML elegante para cada usuario Un CRON job (tarea automática diaria) Todo esto es 100% seguro, legal y estándar en webs de alertas inmobiliarias. Crear tabla para guardar suscriptores Ejecuta esto en tu base de datos CREATE TABLE alertas_madrid ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL, fecha_registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); Guardar suscriptores cuando activen la alerta En tu archivo alertas.php, añade prepare("INSERT INTO alertas_madrid (email) VALUES (?)"); $stmt->execute([$email]); echo ""; } ?> Crear tabla para guardar precios históricos Esto permite comparar precios día a día: CREATE TABLE precios_madrid ( id INT AUTO_INCREMENT PRIMARY KEY, municipio VARCHAR(255), precio DECIMAL(10,2), fecha DATE ); Script automático que detecta bajadas de precio Crea un archivo llamado: cron_alertas.php query("SELECT NMUN, alquiler_total_2023 FROM t_municipios_alquiler WHERE NPRO = 'Madrid'"); $precios_hoy = $stmt->fetchAll(PDO::FETCH_ASSOC); // 2. Obtener precios de ayer $stmt2 = $pdo->query("SELECT municipio, precio FROM precios_madrid WHERE fecha = CURDATE() - INTERVAL 1 DAY"); $precios_ayer = $stmt2->fetchAll(PDO::FETCH_KEY_PAIR); // 3. Detectar bajadas $bajadas = []; foreach ($precios_hoy as $p) { $mun = $p['NMUN']; $precio_hoy = $p['alquiler_total_2023']; if (isset($precios_ayer[$mun]) && $precio_hoy < $precios_ayer[$mun]) { $bajadas[] = [ 'municipio' => $mun, 'antes' => $precios_ayer[$mun], 'ahora' => $precio_hoy ]; } } // 4. Si no hay bajadas, no enviamos nada if (empty($bajadas)) exit; // 5. Obtener suscriptores $stmt3 = $pdo->query("SELECT email FROM alertas_madrid"); $suscriptores = $stmt3->fetchAll(PDO::FETCH_COLUMN); // 6. Construir correo HTML $mensaje = "

📉 ¡Bajadas de precio detectadas en Madrid!

Estos municipios han reducido su precio de alquiler:

"; foreach ($bajadas as $b) { $mensaje .= "

{$b['municipio']}
Antes: {$b['antes']}€
Ahora: {$b['ahora']}€

"; } $mensaje .= "

Gracias por usar RentIA.

"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=UTF-8\r\n"; $headers .= "From: RentIA \r\n"; // 7. Envío masivo foreach ($suscriptores as $email) { mail($email, "Bajadas de precio en Madrid", $mensaje, $headers); } // 8. Guardar precios de hoy para mañana foreach ($precios_hoy as $p) { $stmt4 = $pdo->prepare("INSERT INTO precios_madrid (municipio, precio, fecha) VALUES (?, ?, CURDATE())"); $stmt4->execute([$p['NMUN'], $p['alquiler_total_2023']]); } ?> Programar ejecución automática (CRON) En tu servidor Linux: crontab -e 0 7 * * * /usr/bin/php /ruta/cron_alertas.php Esto ejecuta el script cada día a las 7:00 AM. ¿Qué hace este sistema? ✔ Guarda suscriptores ✔ Guarda precios diarios ✔ Compara precios de hoy vs. ayer ✔ Detecta bajadas reales ✔ Envía correos masivos SOLO cuando hay bajadas ✔ Todo automatizado con CRON Es exactamente lo que usan webs de alertas inmobiliarias profesionales.