Я немного борюсь с этим.
Я пытаюсь отправить свои данные формы Vue с помощью Axios и отправляю себе электронное письмо с помощью PHPMailer.
Вот что у меня есть для Vue:
<script>
const app = new Vue({
el: '#app',
data() {
return {
step: 1,
counter: 0,
debt: {
name: null,
email: null,
tel: null
}
}
},
methods: {
prev() {
this.step--;
},
next() {
this.step++;
},
hasClicked(value) {
alert(this.counter);
},
submit() {
axios.post('post.php', {
'name': this.debt.name,
'email': this.debt.email
}).then(response => {
console.log('success', response.data.message)
}).catch(error => {
console.log(error.response)
});
}
}
});
</script>
Это мой post.php
require __DIR__.'/../../../vendor/autoload.php';
header('Content-type: application/json');
header('Access-Control-Allow-Headers: Content-Type');
header("Access-Control-Allow-Origin: *");
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE);
$name = $input['name'];
$email = $input['email'];
$tel = $input['tel'];
$result['message'] = '';
$result['error'] = false;
if($name){
$result['message'] = $name $email $tel;
$result['error'] = false;
}
$mail = new PHPMailer(true);
foreach($environment['phpmailer'] as $key => $value) {
$mail->$key = $value;
}
//Recipients
$mail->setFrom(constant('SITE_EMAIL'),constant('SITE_TITLE'));
$mail->addAddress($environment['mail_recipients']);
$mail->isHTML(true);
$mail->Subject = 'Title';
$mail->Body = $result;
$mail->send();
echo json_encode($result);
Если я удаляю часть phpmailer из post.php, она отправляет содержимое из формы. Но я не могу заставить его отправить данные по электронной почте.
Надеюсь, кто-то может указать мне правильное направление.
Спасибо, Джейк.