如何使用php Laravel输出jQuery变量以使用Mail-gun发送邮件

时间:2018-02-20 10:36:16

标签: php jquery laravel-5 mailgun

我创建了一个发送到MailGun的AJAX联系表单,但它工作正常但是由于某种原因消息不显示。从图中可以看出。 enter image description here

这是发送给Mailgun的e0邮件的HTML模板:

contact.blade.php

<h3>You have a new contact via the contact form!</h3>
<div>
    {{ $bodyMessage }}
</div>

<p>Sent via Hell</p>

我不认为contact.blade.php正在拿起{{bodyMessage}}变量。

这是AJAX表单的jQuery:

$("form.wpcf7-form").submit(function(e){
    e.preventDefault();
    var token = $("input[name=_token]").val(); // The CSRF token
    var first_name = $("input[name=first-name]").val();
    var last_name = $("input[name=last-name]").val();
    var email = $("input[name=email]").val();
    var phone = $("input[name=phone]").val();
    var bodyMessage = $("textarea[name=message]").val();

    $.ajax({
       type:'POST',
       url:'/contact',
       dataType: 'json',
       data:{_token: token, first_name:first_name, last_name:last_name, email:email, phone:phone, bodyMessage:bodyMessage},
       success:function(data){
           $(".email-success-messge").append(data.success).fadeIn(999);

       }
    });
});

这是ContactController.php:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Post;
use Mail;
use Session;

class ContactController extends Controller
{
    public function postContact(Request $request){
        $this->validate($request, ['email' => 'required|email'] );

        $data = array(
            'first_name' => $request->first_name,
            'last_name' => $request->last_name,
            'email' => $request->email,
            'phone' => $request->phone,
            'bodyMessage' => $request->message
        );

        Mail::send('emails.contact', $data, function($message) use ($data){
            $message->from($data['email']);
            $message->to('j***r@*********.co.uk');
            $message->subject('Contact Details');
        });

        return response()->json(['success' => 'Your E-mail was sent! Allegedly.'], 200);

    }
}

老实说,我不明白为什么它会像发件人的电子邮件和主题那样收发邮件详情,而不是邮件。

1 个答案:

答案 0 :(得分:0)

发表评论作为答案。

'bodyMessage' => $request->message应为'bodyMessage' => $request->bodyMessage,因为您通过ajax将其作为bodyMessage发送。