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

如何在Laravel中配置多个发件邮箱适配不同业务场景

Laravel多发件邮箱配置实现方案

1. 补充.env环境变量

在现有.env的MAIL配置后面新增两套SMTP参数:

# 销售账单邮箱配置
MAIL_SALES_DRIVER=smtp
MAIL_SALES_HOST=smtp.mailtrap.io
MAIL_SALES_PORT=2525
MAIL_SALES_USERNAME=xxxxxxxxx
MAIL_SALES_PASSWORD=xxxxxxxxxxxxx
MAIL_SALES_FROM_ADDRESS=sales@mywebsite.com
MAIL_SALES_FROM_NAME="Sales"
MAIL_SALES_ENCRYPTION=TLS

# 客服通知邮箱配置
MAIL_SUPPORT_DRIVER=smtp
MAIL_SUPPORT_HOST=smtp.mailtrap.io
MAIL_SUPPORT_PORT=2525
MAIL_SUPPORT_USERNAME=yyyyyyyyy
MAIL_SUPPORT_PASSWORD=yyyyyyyyyyyyy
MAIL_SUPPORT_FROM_ADDRESS=support@mywebsite.com
MAIL_SUPPORT_FROM_NAME="Support"
MAIL_SUPPORT_ENCRYPTION=TLS

2. 修改config/mail.php注册多邮箱配置

找到mailers数组,新增两个自定义邮箱驱动配置项:

'mailers' => [
    // 原有默认的smtp配置保留
    'smtp' => [
        'driver' => env('MAIL_DRIVER', 'smtp'),
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'timeout' => null,
        'auth_mode' => null,
    ],
    // 新增销售账单邮箱配置
    'sales' => [
        'driver' => env('MAIL_SALES_DRIVER', 'smtp'),
        'host' => env('MAIL_SALES_HOST'),
        'port' => env('MAIL_SALES_PORT'),
        'encryption' => env('MAIL_SALES_ENCRYPTION', 'tls'),
        'username' => env('MAIL_SALES_USERNAME'),
        'password' => env('MAIL_SALES_PASSWORD'),
        'from' => [
            'address' => env('MAIL_SALES_FROM_ADDRESS'),
            'name' => env('MAIL_SALES_FROM_NAME'),
        ],
        'timeout' => null,
    ],
    // 新增客服通知邮箱配置
    'support' => [
        'driver' => env('MAIL_SUPPORT_DRIVER', 'smtp'),
        'host' => env('MAIL_SUPPORT_HOST'),
        'port' => env('MAIL_SUPPORT_PORT'),
        'encryption' => env('MAIL_SUPPORT_ENCRYPTION', 'tls'),
        'username' => env('MAIL_SUPPORT_USERNAME'),
        'password' => env('MAIL_SUPPORT_PASSWORD'),
        'from' => [
            'address' => env('MAIL_SUPPORT_FROM_ADDRESS'),
            'name' => env('MAIL_SUPPORT_FROM_NAME'),
        ],
        'timeout' => null,
    ],
    // 其他原有配置保持不变
],

3. 业务场景按需调用对应邮箱配置

发送邮件时先用mailer()方法指定要使用的配置标识即可:

  • 账单相关业务用sales配置:
\Mail::mailer('sales')->to($firmAdminEmail->admin_email)->send(new AdminLeadAccept($acceptLink));
  • 通知类及其他业务用support配置:
\Mail::mailer('support')->to($user->email)->send(new OrderNotify($orderInfo));

注意事项

修改配置后如果开启了配置缓存,需要执行php artisan config:cache刷新配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:54:04