使用Axios和PHPMailer提交Vue表单

时间:2018-07-03 13:47:12

标签: php vue.js phpmailer axios

我为此有点挣扎。

我正在尝试使用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部分,它的确会通过表单发送内容。但是我无法将其发送到电子邮件中。

希望有人能指出我正确的方向。

谢谢,杰克。

0 个答案:

没有答案