Вы смешиваете 2 отдельные концепции Laravel, уведомления и почтовые программы. Уведомления могут быть отправителями, но не могут быть отправителями.
Класс MailMessage
является уведомительным сообщением, но не может быть сообщением для Mailable
. Чтобы отправить MailMessage
почтовую программу, вы должны расширить класс Notification
:
<?php
namespace App\Notifications;
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Bus\Queueable;
class WelcomeNotification extends Notification implements ShouldQueue
{
use Queueable, SerializesModels;
public $user;
public function __construct($user)
{
// The $notifiable is already a User instance so not really necessary to pass it here
$this->user = $user;
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->greeting('Bonjour '.$this->user->name)
->line('Nous vous remercions de votre inscription.')
->line('Pour rappel voici vos informations :')
->line('Mail: '.$this->user->email)
->line('Password: '.$this->user->password);
}
}
Также см. Laravel's ResetPassword
Уведомление в качестве примера.
Чтобы отправить уведомление пользователю:
$user->notify(new WelcomeNotification($user));
Таким способом вы можете создавать общие почтовые сообщения, используя шаблон почтового уведомления по умолчанию.