我为此有点挣扎。
我正在尝试使用Axios提交我的Vue表单数据,并使用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);
如果我从post.php中删除phpmailer部分,它的确会通过表单发送内容。但是我无法将其发送到电子邮件中。
希望有人能指出我正确的方向。
谢谢,杰克。