我创建了一个发送到MailGun的AJAX联系表单,但它工作正常但是由于某种原因消息不显示。从图中可以看出。
这是发送给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);
}
}
老实说,我不明白为什么它会像发件人的电子邮件和主题那样收发邮件详情,而不是邮件。
答案 0 :(得分:0)
发表评论作为答案。
'bodyMessage' => $request->message
应为'bodyMessage' => $request->bodyMessage
,因为您通过ajax将其作为bodyMessage
发送。