Php 向作为Laravel通知发送的电子邮件添加标题

Php 向作为Laravel通知发送的电子邮件添加标题,php,laravel,email,laravel-notification,Php,Laravel,Email,Laravel Notification,有人知道如何在通过电子邮件发送的邮件中添加标题吗 我不是说可以通过withSwiftMessage()方法设置头的类 我还想继续使用MailMessage,一旦我有了大量使用行,问候语方法生成的电子邮件 有人有线索吗 这是我的密码,以防有人需要看到任何东西 实际上我找到了两种附加头的方法 当通过邮件通道发送通知时,将触发照亮\mail\Events\MessageSending事件 附加一个侦听器到它。在handle() 或者在AppServiceProvider的register()方法中,使

有人知道如何在通过电子邮件发送的邮件中添加标题吗

我不是说可以通过
withSwiftMessage()
方法设置头的类

我还想继续使用
MailMessage
,一旦我有了大量使用
问候语
方法生成的电子邮件

有人有线索吗

这是我的密码,以防有人需要看到任何东西


实际上我找到了两种附加头的方法

当通过邮件通道发送通知时,将触发
照亮\mail\Events\MessageSending
事件

附加一个侦听器到它。在
handle()

或者在
AppServiceProvider
register()
方法中,使用自己的方法覆盖
MailChannel
,并在
send()
方法中附加标题

$this->app->bind(
    \Illuminate\Notifications\Channels\MailChannel::class,
    MyMailChannel::class
);

在./app/Notifications/myNotification.php中,将以下代码添加到_construct()函数中:

$this->callbacks[]=( function($message){
    $message->getHeaders()->addTextHeader('x-mailgun-native-send', 'true');
});
将“x-mailgun-native-send”替换为您希望添加的任何标题, 和具有所需值的“true”


黛比五世的答案非常接近,但并不完全正确。她提到的问题很清楚,但她错过了解决方案提供的必要背景

默认情况下,Laravel中的通知使用
MailMessage
,但是您也可以让它返回
Mailable
。只有在以下情况下:a)创建自定义邮件,以及b)使用该邮件而不是
MailMessage
时,才会应用回调

更完整的解决方案是:

  • 创建一个定制的可邮寄类
    php artisan make:mail MyMailable
  • 将您的
    公共函数更新为mail($notifiable)
    方法,以使用新的
    可邮寄
  • 将回调添加到
    MyMailable
    类的构造函数中

  • 在那之后,你应该一切都好。最困难的部分是调整当前的
    MailMessage
    以适应
    Mailable

    的API。谢谢,事件侦听器看起来是添加标题并继续使用简单通知的最简单方法。这似乎在5.7上不起作用。。。不会调用回调。因为
    callbacks
    Mailable
    的属性,而不是
    Notification
    的属性,链接的laravel ideas问题是针对laravel 5.8而不是5.7合并的。