使用 Laravel 使用 Mailgun 发送电子邮件时出错
Error sending emails with Mailgun using Laravel
我正在尝试向我的 Laravel 网络应用程序发送邀请电子邮件,其中还必须传递一些参数。我无法发送电子邮件,我猜问题不在我的配置上。有人可以帮我解决这个问题吗?
这是我将邀请发送到电子邮件的表格:
{!! Form::open(['method'=>'post', 'action'=>'AdminUserController@store']) !!}
<input type="hidden" name="is_active" value="0">
<input type="hidden" name="house_id" value="{{Auth::user()->house->id}}">
<input type="hidden" name="role_id" value="2">
<div class="form-group' has-error' : '' }}">
<div class="col-md-6">
{!! Form::text('email',null,['class'=>'form-control', 'placeholder'=>'Email']) !!}
</div>
</div>
<div class="form-group">
{!! Form::submit('Invite', ['class'=>'btn-primary small']) !!}
</div>
{!! Form::close() !!}
这是路由器:
Route::post('/admin/user/store', 'AdminUserController@store')->name('admin/user/store');
这是负责所有逻辑的控制器函数 AdminUserController@store:
public function store(Request $request)
{
$data = [
'title'=>'Invitation',
'content'=>'You are invited to try Housing Around App',
'is_active'=> $request->input('is_active'),
'house_id' => $request->input('house_id'),
'role_id'=>$request->input('role_id'),
'email'=>$request->input('email')
];
$to = $data['email'];
Mail::send('users.user.create',$data, function ($message){
$message->to('to', 'Housing Around')->subject('Invitation');
});
return redirect('home');
}
这些是我的 Mailgun 配置:
.env 文件
MAIL_DRIVER=mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=postmaster@sandbox**************************.mailgun.org
MAIL_PASSWORD=44****************************************c
MAILGUN_DOMAIN=sandboxf6**************************.mailgun.org
MAILGUN_SECRET=key-4******************************0
我的mail.php
'driver' => env('MAIL_DRIVER', 'mailgun'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'info@housingaround.io'),
'name' => env('MAIL_FROM_NAME', 'Housing Around App'),
],
'username' => env('postmaster@sandbox*********************.mailgun.org'),
'password' => env('44**************************c'),
我的services.php
'mailgun' => [
'domain' => env('sandbox*******************.mailgun.org'),
'secret' => env('key-4*************************0'),
],
还是不行。我错过了什么吗?
Blade 文件
<html>
<head>
</head>
<body style="background: black; color: white">
<h1>Housing Around Invitation</h1>
<p></p>
</body>
</html>
使用 $to 而不是 'to' 然后让匿名函数知道它。
function ($message) use ($to)
尝试在更改 .env 文件后运行
php artisan config:cache
我正在尝试向我的 Laravel 网络应用程序发送邀请电子邮件,其中还必须传递一些参数。我无法发送电子邮件,我猜问题不在我的配置上。有人可以帮我解决这个问题吗?
这是我将邀请发送到电子邮件的表格:
{!! Form::open(['method'=>'post', 'action'=>'AdminUserController@store']) !!}
<input type="hidden" name="is_active" value="0">
<input type="hidden" name="house_id" value="{{Auth::user()->house->id}}">
<input type="hidden" name="role_id" value="2">
<div class="form-group' has-error' : '' }}">
<div class="col-md-6">
{!! Form::text('email',null,['class'=>'form-control', 'placeholder'=>'Email']) !!}
</div>
</div>
<div class="form-group">
{!! Form::submit('Invite', ['class'=>'btn-primary small']) !!}
</div>
{!! Form::close() !!}
这是路由器:
Route::post('/admin/user/store', 'AdminUserController@store')->name('admin/user/store');
这是负责所有逻辑的控制器函数 AdminUserController@store:
public function store(Request $request)
{
$data = [
'title'=>'Invitation',
'content'=>'You are invited to try Housing Around App',
'is_active'=> $request->input('is_active'),
'house_id' => $request->input('house_id'),
'role_id'=>$request->input('role_id'),
'email'=>$request->input('email')
];
$to = $data['email'];
Mail::send('users.user.create',$data, function ($message){
$message->to('to', 'Housing Around')->subject('Invitation');
});
return redirect('home');
}
这些是我的 Mailgun 配置:
.env 文件
MAIL_DRIVER=mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=postmaster@sandbox**************************.mailgun.org
MAIL_PASSWORD=44****************************************c
MAILGUN_DOMAIN=sandboxf6**************************.mailgun.org
MAILGUN_SECRET=key-4******************************0
我的mail.php
'driver' => env('MAIL_DRIVER', 'mailgun'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'info@housingaround.io'),
'name' => env('MAIL_FROM_NAME', 'Housing Around App'),
],
'username' => env('postmaster@sandbox*********************.mailgun.org'),
'password' => env('44**************************c'),
我的services.php
'mailgun' => [
'domain' => env('sandbox*******************.mailgun.org'),
'secret' => env('key-4*************************0'),
],
还是不行。我错过了什么吗?
Blade 文件
<html>
<head>
</head>
<body style="background: black; color: white">
<h1>Housing Around Invitation</h1>
<p></p>
</body>
</html>
使用 $to 而不是 'to' 然后让匿名函数知道它。
function ($message) use ($to)
尝试在更改 .env 文件后运行
php artisan config:cache