На данный момент Событие не знает, что такое почтовый тип, так как HTML уже создан из блейда.
Однако вы можете добавить значения к базовому классу быстрой почты в вашем почтовом сообщении.
В папке App\Mail
создайте файл с именем Mailable.php
.Теперь это ваш новый почтовый класс, с которого будут расширены все ваши почтовые сообщения.
namespace App\Mail;
use Illuminate\Contracts\Mail\Mailer as MailerContract;
use Illuminate\Mail\Mailable as BaseMailable; // Extend off laravel mailable
abstract class Mailable extends BaseMailable
{
public function send(MailerContract $mailer)
{
//Initializes properties on the Swift Message object
$this->withSwiftMessage(function ($message) {
$message->mailable = get_class($this);
});
parent::send($mailer);
}
}
Используйте этот класс для всех ваших почтовых сообщений, например, так:
use App\Mail\Mailable; // This is your new mailable parent class
class UserConfirmEmail extends Mailable
{
public function build()
{
// Build email
}
}
Затем вы можете получитьпочтовое имя из вашего объекта swift_mail, которое является атрибутом сообщения переменной $event
, например, $event->message
.
// App\Listeners\LogMessageSending.php
public function handle(MessageSending $event)
{
//here i want to check what mailable class used and stop it.
if ($event->message->mailable == 'Ordershipped') {
return false;
}
// if another mailable class (example: userVerification)
else {
return true;
}
}