You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不发布模板文件修改Laravel 8 Notification邮件落款问候语

不发布Blade模板修改Laravel通知邮件落款方法

问题场景

目标为修改通知类toMail方法生成邮件底部的regards, {应用名称}默认落款;仅修改该部分内容就执行vendor:publish发布模板文件属于冗余操作,Laravel自带的常规邮件内容调整函数未覆盖该落款区域,默认内容无法通过常规API修改。
邮件落款对应位置截图

实现方案

不需要发布、修改任何vendor目录下的Blade模板文件,直接调用Laravel通知系统原生API即可完成修改,适配两种使用场景:

  • 单通知维度自定义落款
    在对应通知类的toMail方法中,给返回的MailMessage实例链式调用salutation()方法,传入自定义落款内容即可,示例代码:
    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('通知标题')
            ->line('通知正文内容')
            ->action('操作按钮', route('对应业务路由'))
            // 传入的内容会直接替换默认的「regards + 应用名」落款
            ->salutation('Regards, 自定义落款文本');
    }
    
    如果需要完全移除落款区域,直接给salutation()传入空字符串即可。
  • 全局维度统一落款
    若需要所有通知邮件统一使用相同自定义落款,不需要在每个通知类重复配置,直接在app/Providers/AppServiceProvider.php的boot方法中注册全局宏即可:
    // 文件头部提前引入MailMessage类
    use Illuminate\Notifications\Messages\MailMessage;
    
    public function boot()
    {
        // 全局设置所有通知邮件的默认落款
        MailMessage::macro('build', function () {
            $this->salutation('Regards, 全局统一落款内容');
            return $this;
        });
    }
    

补充说明:

  1. salutation为Laravel 5.4及以上版本自带的原生方法,覆盖所有主流现行Laravel版本,无需额外安装扩展包
  2. 如果仅需要修改落款中显示的应用名称,不需要编写额外代码,直接修改.env文件中的APP_NAME配置值即可,默认落款会自动读取该配置项渲染

内容的提问来源于stack exchange,提问作者Duschi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:39:20