<?php
    require 'PHPMailer/PHPMailer.php';
    require 'PHPMailer/SMTP.php';
    require 'PHPMailer/Exception.php';

    header('Content-type: text/html; charset=utf-8');
    ini_set('max_execution_time', 0);
    set_time_limit(0);

    //require "PHPMailer/PHPMailerAutoload.php";

    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);

    //ini_set('display_errors', 'Off');

    // Пароль от почтового ящика на яндексе для отправки формы по протолу SMTP
    $_POST["password"] = "forms2021";

    // Вебхук Битрикс24
    $webhookBitrix24 = "https://joinleader.bitrix24.ru/rest/8/pg1gdni03j74k1ep/";

    // =========================================================================
    // Отправка в Битрикс24
    if ($_POST["query"] == "send"){
        // Создание
        $curl = curl_init();

        curl_setopt_array($curl, array(
            CURLOPT_URL            => $webhookBitrix24 . 'crm.lead.add.json',
            //CURLOPT_URL            => $webhookBitrix24 . 'crm.deal.add.json',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING       => '',
            CURLOPT_MAXREDIRS      => 10,
            CURLOPT_TIMEOUT        => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST  => 'POST',
            CURLOPT_POSTFIELDS     => array(
                'FIELDS[TITLE]'                => $_POST["theme"],       // Тема
                'FIELDS[NAME]'                 => $_POST["name"],        // Имя
                'FIELDS[PHONE][0][VALUE]'      => $_POST["phone"],       // Телефон
                'FIELDS[PHONE][0][VALUE_TYPE]' => 'WORK',                // Тип телефона
                'FIELDS[COMMENTS]'             => $_POST["message"],     // Комментарий
            ),
            CURLOPT_HTTPHEADER     => array(
                'Cookie: BITRIX_SM_SALE_UID=0; qmb=.'
            ),
        ));

        $response = curl_exec($curl);
        curl_close($curl);
        //echo "\n";
        //echo $response;
    }

    // =========================================================================
    // Отправка формы
    if ($_POST["query"] == "send"){
        // Отправка письма
        $signArr = json_decode($_POST["sign"]);
        $bodyArr = json_decode($_POST["body"]);

        //for ($i = 0; $i < count($bodyArr); $i++){
        //    echo($signArr[$i] . ":   " . $bodyArr[$i] . "\n");
        //}

        // Email получателя (массив)
        $_POST["smtpEmail"] = preg_replace('/\s+/', '', $_POST["smtpEmail"]);   // Удаляем пробелы из строки
        $smtpToArr = explode(",", $_POST["smtpEmail"]);                         // Строку с адресами в массив

        // Адрес для ответа (адрес клиента)
        if (trim($_POST["smtpFrom"]) == ""){
            $_POST["smtpFrom"] = preg_replace('/\s+/', '', $_POST["smtpFromDef"]);
        } else {
            $_POST["smtpFrom"] = preg_replace('/\s+/', '', $_POST["smtpFrom"]);
        }

        // Содержимое письма
        $message = "<html><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/><title>" . $_POST["smtpTheme"] . "</title></head><body><table cellspacing='0' cellpadding='0' width='100%'>";

        for ($i = 0; $i < count($bodyArr); $i++){
            if (($i % 2) == 0){$message .= "\r\n<tr style='background-color: #EDEDED; height: 28px;'>";}
            if (($i % 2) != 0){$message .= "\r\n<tr style='background-color: #FFFFFF; height: 28px;'>";}
            $message .= "<td width='25%' style='font: bold 14px Arial;'>" . $signArr[$i] . ":" . "</td><td style='font: normal 14px Arial;'>" . $bodyArr[$i] . "</td></tr>";
        }

        $message .= "\r\n</table></body></html>";

        // Отправка письма через PHPMailer
        $mail = new PHPMailer\PHPMailer\PHPMailer();

        $mail->isSMTP();                                     // Отправка по протоколу SMTP
        $mail->SMTPDebug   = 0;                              // Вывод ошибок (0 - 4). Чем больше, тем подробнее
        $mail->Debugoutput = "html";                         // Вывод логов в HTML формате
        $mail->CharSet     = "UTF-8";                        // Кодировка

        $mail->SMTPAuth    = $_POST["smtpAuth"];             // Авторизация
        $mail->Host        = $_POST["smtpHost"];             // SMTP сервер
        $mail->Port        = $_POST["smtpPort"];             // Порт
        $mail->Username    = $_POST["smtpLogin"];            // Логин (Email получателя)
        $mail->Password    = $_POST["password"];             // Пароль от почтового ящика
        $mail->SMTPSecure  = $_POST["smtpSecure"];           // Шифрование
        $mail->Subject     = $_POST["smtpTheme"];            // Тема письма (заголовок)

        $mail->setFrom($_POST["smtpLogin"]);                                            // Логин (Email, имя получателя)
        for ($i = 0; $i < count($smtpToArr); $i++){$mail->addAddress($smtpToArr[$i]);}  // Email получателя
        $mail->addReplyTo($_POST["smtpFrom"]);                                          // Кому ответить (Email, имя клиента)

        // Тело сообщения
        $mail->msgHTML($message);

        // Отправка формы
        $result = false;
        //$result = true;
        $result = $mail->send();

        if ($result){
            echo ("ok");
        } else {
            echo ("error");
        }
    }

?>