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
相关产品推荐
相关产品推荐

