如何使用 php Laravel 输出 jQuery 变量以使用 Mail-gun 发送邮件
How to output a jQuery variable with php Laravel to send mail with Mail-gun
我已经创建了一个 AJAX 联系表格发送到 MailGun,它工作正常,但由于某种原因没有显示消息。从图中可以看出。
这是发送到 Mailgun 的电子邮件的 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);
}
}
老实说,我不明白为什么它需要邮件详细信息,如发件人的电子邮件和主题,而不是邮件。
发布我的评论作为答案。
'bodyMessage' => $request->message
应该是 'bodyMessage' => $request->bodyMessage
,因为您通过 ajax.
将其作为 bodyMessage
发送
我已经创建了一个 AJAX 联系表格发送到 MailGun,它工作正常,但由于某种原因没有显示消息。从图中可以看出。
这是发送到 Mailgun 的电子邮件的 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);
}
}
老实说,我不明白为什么它需要邮件详细信息,如发件人的电子邮件和主题,而不是邮件。
发布我的评论作为答案。
'bodyMessage' => $request->message
应该是 'bodyMessage' => $request->bodyMessage
,因为您通过 ajax.
bodyMessage
发送