Adding headers to email sent as a Laravel Notification

后端 未结 3 1994
无人及你
无人及你 2021-01-18 20:13

Someone knows how to add headers to emails sent through Laravel Notification System?

I am not talking about Mailable classes where I can set header through the

相关标签:
3条回答
  • 2021-01-18 20:18

    In ./app/Notifications/myNotification.php, add this code in your __construct() function:

    $this->callbacks[]=( function($message){
        $message->getHeaders()->addTextHeader('x-mailgun-native-send', 'true');
    });
    

    Replace the "x-mailgun-native-send" with any header you wish to add, and 'true' with the desired value.

    See https://github.com/laravel/ideas/issues/475

    0 讨论(0)
  • 2021-01-18 20:21

    Actually I've found 2 ways to append headers.

    When the notification is sent via mail channel an Illuminate\Mail\Events\MessageSending event is fired.

    Append a listener to it. In handle() you will get the Swift_Message object.

    Or in the AppServiceProvider's register() method override the MailChannel with your own and append the header in the send() method.

    $this->app->bind(
        \Illuminate\Notifications\Channels\MailChannel::class,
        MyMailChannel::class
    );
    
    0 讨论(0)
  • 2021-01-18 20:26

    Debbie V has a pretty close answer but not quite right. The issue she is referencing makes it clear, but she missed the necessary context that solution provided.

    By default a Notification in Laravel uses MailMessage, however you can also have it return a Mailable instead. Only if you: a) create a custom mailable, and b) use that instead of MailMessage will the callbacks be applied.

    A more complete solution would be:

    1. Create a custom mailable class php artisan make:mail MyMailable
    2. Update your public function toMail($notifiable) method to utilize a the new Mailable.
    3. Add the callbacks to the constructor of your MyMailable class.

    And after that you should be all good. The hardest part of this is just adapting the current MailMessage you use to fit the API of a Mailable.

    0 讨论(0)
提交回复
热议问题