在localhost环境中,我尝试向自己发送电子邮件,
并使用以下代码,我可以真正得到邮件,但是
浏览器(谷歌浏览器)开发返回消息 Failed to load response data
为什么邮件发送成功但在laravel 5中出错?
6/21:将MAIL_DRIVER=smtp
更改为MAIL_DRIVER=mail
,响应可以成功返回,但无法在我的邮件服务器中获取邮件。
对于安全问题,我使用example
一词来替换真实域名
当然,设置是完全正确的
这是我的 .env
文件:
MAIL_DRIVER=smtp
MAIL_HOST=mail.example.com
MAIL_PORT=25
MAIL_USERNAME=system@example.com
MAIL_PASSWORD=123
MAIL_ENCRYPTION=null
我的 route.php
Route::post('/ajaxSendEmail', [ 'as' => 'ajaxSendEmail','uses' =>'MyController@ajaxSendEmail' ] );
html <meta name="csrf-token" content="{{ csrf_token() }}" />
的和令牌
我的 ajax
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "{{ route('ajaxSendEmail')}}",
type: "POST",
cache: false,
dataType: "json",
timeout: 10000,
error: function (error) {
alert('ajax error');
}
});
我的 Controller
功能
public function ajaxSendEmail()
{
$r['returnData'] = Mail::send('email.feedback', ['data'=> 'Hello Mail'], function ($message) {
$message->from('service@faciwedding.com', 'FACI');
$message->to('service@faciwedding.com');
$message->subject('Hello');
});
return response()->json($r);
}
我的电子邮件视图 email.feedback
非常简单。
<h1>{{ $data }}</h1>