@baroman4ik

Как отправить message на почту c помощью PHPMailer?

Задача: отправить данные с формы на почту.
Пробовал отправить с помощью PHPMailer, но так как я PHP не знаю не получилось. Если кто-то умеет оправлять такие запросы предложите как это сделать иначе используя примерно такой же JS, или подскажите в чём ошибка в этом коде.
JS:
const modalOverlay = document.querySelector('.modal-overlay')
const nameInp = document.querySelector('#name-inp')
const phoneInp = document.querySelector('#phone-inp')
const subSend = document.querySelector('.modal #sub-send')
const closeBtn = document.querySelector('.modal .close')
function modalOpen() {
    modalOverlay.classList.add('open')
}
function modalHide() {
    modalOverlay.classList.remove('open')
}
setTimeout(modalOpen, 1000)
closeBtn.addEventListener('click', () => {
    modalHide()
})
modalOverlay.addEventListener('click', () => {
    modalHide
})
document.addEventListener('DOMContentLoaded', function () {
    // subSend.addEventListener('click', e => {
    const form = document.getElementById('form')
    console.log(form)
    form.addEventListener('submit', formSend)
        // if (phoneInp.value[0] === '+' || phoneInp.value[0] === '8' && phoneInp.value.length > 7 && nameInp.value.length > 3){ }
        // else {
        //     alert('введите корректные данные')
        //     modalOpen()
        // }
        // console.log(nameInp.value, phoneInp.value)

    async function formSend(e) {
        console.log('work')
        e.preventDefault()
        let formData = new FormData(form)
        console.log(formData)
        let response = await fetch('sendmail.php', {
            method: 'POST',
            body: formData
        })
        if (response.ok) {
            let result = await response.json();
            alert(result.message);
            form.reset();
            alert('Заявка успешно оставлена!')
            modalHide()
        }
        else alert('Error')
    }
})

PHP:
<?php
    use PHPMailer\PHPMailer\PHPMailer;
//     use PHPMailer\PHPMailer\SMTP;
    use PHPMailer\PHPMailer\Exception;

    require 'phpmailer/src/Exception.php';
    require 'phpmailer/src/PHPMailer.php';

    $mail = new PHPMailer(true);
//     $mail->SMTPDebug = SMTP::DEBUG_SERVER;

//     $mail->isSMTP();
    $mail->CharSet = 'UTF-8';
    $mail->setLanguage('ru', 'phpmailer/language/');
    $mail->IsHTML(true);
    $mail->setFrom('romuel4ik@gmail.com', 'Роман Бачище');
    $mail->addAddress('baroman4i@mail.ru', 'Роман Бачище');
//     $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
//     $mail->Port       = 465;
    $mail->Subject = 'Привет! Это твоё первое сообщение';
    $body = '<h1>First Message</h1>';
    $body.='<p>Имя:'.$_POST['name'].'</p>';
    $body.='<p>Номер:'.$_POST['phone'].'</p>';

    $mail->Body = $body;

    if (!$mail->Send()) {
        $message = 'Error';
    } else {
        $message = 'Данные отправлены!';
    }
    $response = ['Message' => $message];
    header('Content-type: application/json');
    echo json_encode($response);
?>
  • Вопрос задан
  • 513 просмотров
Пригласить эксперта
Ответы на вопрос 1
@galaxy
А что не получилось-то?
$mail->serForm('username@gmail.com', '****');

setFrom
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы