Не отправляется форма с локального сервера

Всем привет! Я начинающий в разработке сайтов. Взял свой первый заказ, все сделал, но... Столкнулся с тем, что не могу настроить отправку формы. Перепробовал разные варианты - и ни в какую. Локальный сервер: XAMPP. Настройки сервера:

**файл php.ini**

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = [email protected]

**файл sendmail.ini**

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
[email protected]
auth_password=пароль приложения

Дальше код.

ВЕРСТКА
<form id="form" class="subscribe__form form-send">
                        <h5 class="subscribe__title"><?php echo carbon_get_post_meta($page_id, 'subscribe_title')?></h5>
                        <div id="note"></div>
                        <div class="subscribe__form-body form-body" id="fields">
                            <input required type="text" name="name" placeholder="<?php echo carbon_get_post_meta($page_id, 'subscribe_placeholder-1')?>" class="form-body_input _req">
                            <input required type="text" name="email" placeholder="<?php echo carbon_get_post_meta($page_id, 'subscribe_placeholder-2')?>" class="form-body_input _req _email">
                            <button type="submit" id="submit" class="form-body_button red-button"><?php echo carbon_get_post_meta($page_id, 'subscribe_button_text')?></button>
                        </div>
                    </form>

JS

;(function() {
let forms = document.querySelectorAll('.form-send');

if (forms.length === 0) {
    return;
}

let serialize = function(form) {
    let items = form.querySelectorAll('input');
    let str = '';

    for (let i = 0; i < items.length; i += 1) {
        let item = items[i];
        let name = item.name;
        let value = item.value;
        let separator = i === 0 ? '' : '&';

        if (value) {
            str += separator + name + '=' + value;
        }
    }

    return str;
}

let formSend = function(form) {
    let data = serialize(form);

    let xhr = new XMLHttpRequest();
    let url = 'wp-content/themes/wpvitaliy/mail.php';

    xhr.open('POST', url);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    xhr.onload = function() {
        let activePopup = document.querySelector('.popup.open');

        if (activePopup) {
            activePopup.classList.remove('open');
        } else {
            // console.log('error');
        }


        if (xhr.response === 'success') {
            document.querySelector('.popup-thnx').classList.add('open');
        } else {
            console.log('error');
        }
    };

    xhr.send(data);
};

for (let i = 0; i < forms.length; i += 1) {
    forms[i].addEventListener('submit', function(e) {
        e.preventDefault();
        let form = e.currentTarget;
        formSend(form);
    });
}
})();

PHP

$method = $_SERVER['REQUEST_METHOD'];

if ($method !== 'POST') {
  exit();
}

$admin_email = '[email protected]';
$form_subject = 'Заявка с сайта на консультацию';
$message = '';

$color_counter = 1;

foreach ($_POST as $key => $value) {
    if ($value === '') {
        continue;
    }
    $color = $color_counter % 2 === 0 ? '#fff' : '#f8f8f8';
    $message .= "
    <tr style='background-color: $color;'>
    <td style='padding: 10px; border: 1px solid #e9e9e9;'>$key</td>
    <td style='padding: 10px; border: 1px solid #e9e9e9;'>$value</td>
  </tr>";

$color_counter++;
}

function adopt($text) {
return '=?utf-8?B?'.base64_encode($text).'?=';
}

$message = "<table style='width: 100%;'>$message</table>";

$headers  = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From:" . adopt($form_subject) . " <$admin_email>\r\n";

$success_send = mail($admin_email, adopt($form_subject), $message, $headers);

if ($success_send) {
echo 'success';
} else {
echo 'error';
}

Консоль не выдает пояснение ошибки, поэтому ограничился console.log('error') :(((

Большая надежда, что кто-то поможет разобраться, т.к. сам перебрал кучу вариантов и пересмотрел массу уроков, но свой вопрос не решил(


Ответы (1 шт):

Автор решения: wnsy

Вопрос решен! Моя задача была протестить отправку формы. Я поставил локальный сервер hMailServer, создал на нем почтовый аккаунт и настроил отправку на него. Все сработало!

→ Ссылка