我试图向新的注册用户发送电子邮件,但由于某种原因,该电子邮件未发送。我有以下内容:
app/http/controllers/auth/registercontroller.php
protected function create(array $data)
{
$user = User::create([
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
Mail::to($data['email'])->send(new WelcomeMail($user));
return $user;
}
app/mail/welcomemail.php
class WelcomeMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user)
{
$this->user = $user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.welcome');
}
}
app/http/controllers/auth/welcomecontroller.php
class WelcomeController extends Controller
{
/**
* Send Verification Email
*
* @param Request $request
* @return Response
*/
public function sendEmail(Request $request)
{
Mail::to($request->user())->send(new WelcomeMail($user));
}
}
我的blade
在resources/views/emails/welcome.blade.php
。
我认为我可能会缺少激活WelcomeMail
控制器的路线?
我知道刀片很好,因为每当我尝试手动路由
时,它可以工作Route::get('/mailable', function (Request $request) {
$user = $request->user();
return new AppMailWelcomeMail($user);
});
任何想法可能是什么问题?
编辑
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=9d1204***
MAIL_PASSWORD=7919be***
MAIL_ENCRYPTION=null
尝试将QUEUE_DRIVER
值更改为.env中的sync
,看看是否发生任何事情。