<?php
// Включаем вывод ошибок на экран
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$countgood = 0;
$countbad = 0;
// Подключаем PHPMailer
require 'vendor/autoload.php';

$failed_recipients = array();
$successful_recipients = array();

// Подключаемся к базе данных
$pdo = new PDO('mysql:host=localhost;dbname=k123263_sender', 'k123263_sender_u', '84ms232e96aothgvw1');

// Получаем подписчиков из базы данных
$stmt = $pdo->query('SELECT id, email, subscribed FROM subscribers');
$subscribers = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Массивы с альтернативными фразами для каждого абзаца
$greetings = array(
    "Hola,",
    "¡Buenos días!",
    "¡Saludos!",
);

$company_descriptions = array(
    "Somos Baltic Recycling Solution, la empresa líder en el sector de reciclaje de cables.",
    "Nuestra compañía, Baltic Recycling Solution, se destaca como líder en el reciclaje de cables.",
    "En Baltic Recycling Solution, nos especializamos en el reciclaje de cables y ofrecemos soluciones innovadoras en toda Europa.",
);

$company_benefits = array(
    "Hemos acumulado una amplia experiencia en el reciclaje de cables y nuestras inversiones en nuevas tecnologías nos permiten ofrecer las condiciones más favorables a nuestros clientes.",
    "Nuestro compromiso con la excelencia nos ha permitido construir una sólida reputación en el sector de reciclaje de cables.",
    "Nos enorgullecemos de ofrecer a nuestros clientes las mejores soluciones en el reciclaje de cables, respaldadas por nuestra experiencia y tecnología avanzada.",
);

// Выбираем случайные фразы из каждого массива
$random_greeting = $greetings[array_rand($greetings)];
$random_company_description = $company_descriptions[array_rand($company_descriptions)];
$random_company_benefit = $company_benefits[array_rand($company_benefits)];

// Создаем экземпляр PHPMailer
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP(); // Указываем, что используем SMTP
$mail->Host = 'send.one.com'; // Замените на адрес вашего SMTP-сервера
$mail->SMTPAuth = true; // Включаем SMTP-аутентификацию
$mail->Username = 'info@recycling-solution.es'; // Замените на ваш SMTP-логин
$mail->Password = '2024Brs!'; // Замените на ваш SMTP-пароль
$mail->SMTPSecure = 'ssl'; // Установите метод шифрования (tls или ssl), если необходимо
$mail->Port = 465; // Установите порт SMTP-сервера, если необходимо

$mail->setFrom('info@recycling-solution.es', 'Recycling Solution');
$mail->addReplyTo('info@recycling-solution.es', 'Recycling Solution');
$mail->CharSet = 'UTF-8'; // Установка кодировки для письма


$mail->isHTML(true); // Указываем, что письмо является HTML

// Устанавливаем тему письма
$mail->Subject = 'Compramos cables en toda España';


// Отправляем письмо каждому подписчику с задержкой
foreach ($subscribers as $subscriber) {
    // Проверяем, подписан ли подписчик
    if ($subscriber['subscribed'] == 1) {
        // Устанавливаем адрес получателя
        $mail->addAddress($subscriber['email']);
        
        // Уникальный идентификатор для отслеживания адресата
        $recipient_id = $subscriber['id']; // Используем id адресата из базы данных
        
        // Читаем HTML-шаблон из файла
        $html_template = file_get_contents('email_template.html');
        
        // Выбираем случайные фразы из каждого массива
        $random_greeting = $greetings[array_rand($greetings)];
        $random_company_description = $company_descriptions[array_rand($company_descriptions)];
        $random_company_benefit = $company_benefits[array_rand($company_benefits)];
        $random_unicid = uniqid('email_', true);
        
        // Заменяем плейсхолдеры в HTML-шаблоне
        $html_message = str_replace('{RECIPIENT_ID}', $recipient_id, $html_template);
        $html_message = str_replace('{RANDOM_HOLA}', $random_greeting, $html_message);
        $html_message = str_replace('{RANDOM_2}', $random_company_description, $html_message);
        $html_message = str_replace('{RANDOM_3}', $random_company_benefit, $html_message);
        $html_message = str_replace('{UNICID}', $random_unicid, $html_message);
        
        // Устанавливаем тело письма
        $mail->Body = $html_message;

         // Отправляем письмо
        if (!$mail->send()) {
            echo "Failed to send email to {$subscriber['email']}: " . $mail->ErrorInfo . "<br>";
            $countbad++; 
        } else {
            echo "Email sent to {$subscriber['email']} successfully!<br>";
            $countgood++;
        }

        // Очищаем адрес получателя перед отправкой следующего письма
        $mail->clearAddresses();
        $mail->Body = ''; // Очистка тела письма

        // Генерируем случайную задержку от 5 до 20 секунд
        $delay = rand(5, 20);
        sleep($delay);
       
    } else {
        // Подписчик отписался, пропускаем отправку письма
        echo "Skipping email sending to {$subscriber['email']} because they unsubscribed.<br>";
    }
}

// Отправляем письмо со списком успешных и неудачных отправок
$mail->clearAddresses();
$mail->addAddress('admin@recycling-solution.es'); // Замените на ваш адрес

$mail->Subject = 'Report';

$body = "<h2>Enviado correctamente:</h2><ul>" . $countgood;

$body .= "<h2>No enviado:</h2><ul>" . $countbad;


$mail->Body = $body;

if (!$mail->send()) {
    echo "Failed to send report email: " . $mail->ErrorInfo . "<br>";
} else {
    echo "Report email sent successfully!<br>";
}
?>