Я настроил контактную форму, которая отправляет электронное письмо по завершении с помощью уведомлений Laravel, однако, похоже, что ничего не отправляется.
МАРШРУТЫ
Route::post('/contact', 'ContactController@store');
CONTROLLER
public function store()
{
request()->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:contacts|max:255',
'message' => 'required|max:2000',
]);
$contact = Contact::create(
request()->only([
'name',
'email',
'message',
])
);
User::first()->notify(new SendContactNotification($contact));
return back()->with('success', 'Thank you, I will be in touch as soon as I can');
}
УВЕДОМЛЕНИЕ
protected $contact;
public function __construct($contact)
{
$this->contact = $contact;
}
public function toMail($notifiable)
{
return (new MailMessage)
->line($this->contact->name)
->line($this->contact->email)
->line($this->contact->message);
}
Я получаю сообщение об успехе, когда запускаю его. Тем не менее, ничего не появляется в моей Mailtrap. Вот почтовый раздел очищенного .env файла:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS='admin@test.com'
MAIL_FROM_NAME='admin'
Я не вижу, что я сделал неправильно. Я также попытался напечатать намекает контакт в уведомлении так:
public function __construct(Contact $contact)
{
$this->contact = $contact;
}
К сожалению, это не сработало. Я также подумал, что это может быть связано с тем, что мой компьютер не настроен на отправку электронных писем с использованием php, но у меня сложилось впечатление, что об этом позаботится файл env.
Контакты хранятся в базе данных нормально, но электронные письма не отправляются. Кто-нибудь сможет помочь?