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

Laravel修改邮件服务器配置后仍用旧配置报错求助

Laravel邮件配置异常问题排查

问题现象

接手Laravel项目搭建开发环境,MySQL配置完成后,邮件确认功能异常。已修改.env文件指向新的邮件服务器,但应用仍尝试连接旧项目的邮件服务器previous.group.mailserver.com,报错如下:

Connection could not be established with host previous.group.mailserver.com :stream_socket_client(): php_network_getaddresses: getaddrinfo failed: The specified host is unknown.

已做修改

已更新所有Mail::send代码使用开发邮箱:

Mail::send($view, $mail_data, function ($message) use ($mail_data) {
    $message->to($mail_data['receiver_mail'], $mail_data['receiver_name'] . " " . $mail_data['receiver_surname'])->bcc('X', 'X')->subject('Confirmation Mail');
});

相关配置文件

mail.php

<?php
return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'from' => [
        'address' => 'myGmail@gmail.com',
        'name' => 'development email',
    ],

    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'sendmail' => '/usr/sbin/sendmail -bs',
];

.env

APP_NAME=X
APP_ENV=local
APP_KEY=X
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http:http://localhost

UNIQUE_SERVER_URL=X/

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=X
MAIL_PASSWORD=X
MAIL_ENCRYPTION=ssl


DATABASE=X
DATABASE_USERNAME=X
DATABASE_PASSWORD=X

composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.0.0",
        "barryvdh/laravel-cors": "^0.11.2",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.5.*",
        "laravel/tinker": "~1.0"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~6.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "ThekRe\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true,
        "allow-plugins": {
            "kylekatarnls/update-helper": true
        }
    }
}

已尝试的方案

参考过类似的配置异常问题解决方案,但未解决问题。


排查修复步骤

  • 清除配置缓存:Laravel会缓存.env配置,执行以下命令强制刷新:
    php artisan config:clear
    php artisan cache:clear
    
  • 修复.env格式错误:.env中APP_URL=http:http://localhost存在格式错误,改为APP_URL=http://localhost,错误的URL格式可能导致配置加载异常。
  • 修正Gmail SMTP配置:Gmail的587端口对应加密方式应为tls,将.env中MAIL_ENCRYPTION=ssl改为MAIL_ENCRYPTION=tls;若使用ssl加密,需将端口改为465。另外,Gmail需开启低安全性应用权限(或使用应用密码,若开启了两步验证)。
  • 检查硬编码配置:排查项目代码中是否存在硬编码旧邮件服务器地址的情况,比如是否有Mail::setHost('previous.group.mailserver.com')这类直接覆盖配置的代码。
  • 重启本地服务:若使用XAMPP、Valet等本地服务器,重启服务确保新配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:54:55