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

如何在Laravel Mail中设置默认全局CC/BCC地址

邮件自动追加全局CC/BCC实现方案

1. 新增配置项

首先在你的应用邮件配置文件(例:config/mail.php)中添加全局抄送、密送的地址配置:

return [
    // 原有其他邮件配置
    'global_cc' => [
        'ops@example.com' => 'Operation Team',
        'manager@example.com' => 'Project Manager',
    ],
    'global_bcc' => [
        'audit@example.com' => 'Audit Department',
    ],
];

2. 注入全局发送逻辑

核心实现思路是通过邮件发送前置钩子,自动读取配置注入CC/BCC,无需业务代码手动调用对应方法,不同场景实现方式如下:

Laravel框架实现

  1. 生成邮件发送事件监听器:
    执行命令:php artisan make:listener AppendGlobalMailRecipients
  2. 编写监听器逻辑:
    打开app/Listeners/AppendGlobalMailRecipients.php,修改handle方法:
    use Illuminate\Mail\Events\MessageSending;
    
    public function handle(MessageSending $event)
    {
        // 注入全局抄送
        foreach (config('mail.global_cc', []) as $address => $name) {
            $event->message->addCc(
                is_int($address) ? $name : $address,
                is_int($address) ? null : $name
            );
        }
        // 注入全局密送
        foreach (config('mail.global_bcc', []) as $address => $name) {
            $event->message->addBcc(
                is_int($address) ? $name : $address,
                is_int($address) ? null : $name
            );
        }
    }
    
  3. 注册监听器:
    打开app/Providers/EventServiceProvider.php,在$listen数组中添加事件绑定:
    protected $listen = [
        MessageSending::class => [
            AppendGlobalMailRecipients::class,
        ],
    ];
    

其他框架/原生SwiftMailer实现

  • 找到邮件类的发送前置回调/钩子方法,在发送前读取配置,调用对应库的addCc、addBcc方法注入地址即可
  • 原生SwiftMailer可直接注册Swift_Events_SendListener插件,在beforeSendPerformed方法中完成上述逻辑

3. 验证与扩展

  • 配置完成后所有发送的邮件会自动追加全局CC/BCC,和业务代码手动添加的收件人自动合并,不会覆盖
  • 如果有特殊邮件不需要全局抄送/密送,可在监听器中添加判断规则,比如根据邮件类名、自定义标识字段跳过注入逻辑

内容的提问来源于stack exchange,提问作者Paolo Uriel N. Enriquez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:15:02