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

Laravel配置SMTP后无法将发送邮件保存至storage/maildump文件夹

解决Laravel邮件无法保存至/storage/maildump目录的问题

你的核心问题是错误地在SMTP驱动配置中添加了log选项,这个配置在SMTP驱动下不会生效——SMTP驱动的作用是连接邮件服务器发送邮件,而非将邮件保存到本地文件。要实现邮件存到指定目录,需切换到file邮件驱动,具体操作如下:

1. 修改默认邮件驱动

打开config/mail.php,将默认驱动改为file:

'default' => env('MAIL_MAILER', 'file'),

2. 配置File邮件器

在mailers数组中添加(或修改)file驱动的配置:

'mailers' => [
    // 保留原SMTP配置(如需切换回发送模式可复用)
    'smtp' => [
        'transport' => 'smtp',
        'url' => env('MAIL_URL'),
        'host' => env('MAIL_HOST', '127.0.0.1'),
        'port' => env('MAIL_PORT', 2525),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'timeout' => null,
        'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
    ],

    // 添加File驱动配置
    'file' => [
        'transport' => 'file',
        'path' => storage_path('maildump'),
    ],
],

3. 同步环境变量配置

打开.env文件,确保邮件驱动设置为file:

MAIL_MAILER=file

4. 验证目录权限

确保storage/maildump目录拥有写入权限,可执行以下命令(根据服务器运行用户调整):

chmod -R 755 storage/
# 或针对nginx/apache用户
chown -R www-data:www-data storage/

5. 测试邮件发送

重新发送邮件后,storage/maildump目录下会生成以.eml为后缀的邮件文件。如果仍为空,可查看storage/logs/laravel.log排查错误(如权限不足、配置未生效等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:23:19