Laravel8配合Mailcatcher发邮件报Cannot assign requested address如何解决
问题原因及解决方案
核心错误点
你先后两次报错分别对应两个配置错误:
- 第一次用
MAIL_HOST=localhost:Docker容器内的localhost指向当前PHP容器本身,而非宿主机或Mailcatcher容器,自然无法建立连接。 - 第二次修改主机为
mailcatcher后仍报错:你配置的8003:1025是宿主机端口到Mailcatcher容器内部端口的映射,仅对外网/宿主机访问生效。同一Docker网络下的容器互访,直接使用Mailcatcher容器内部监听的SMTP端口1025即可,不需要走映射后的宿主机端口。
修复步骤
- 修改你的
.env邮件配置对应项为如下值:
MAIL_HOST=mailcatcher MAIL_PORT=1025
其余邮件配置项保持现有配置即可。
2. 执行Laravel配置清理命令,避免旧缓存配置生效:
php artisan config:clear
- 重新发送测试邮件,即可在宿主机的
http://localhost:8100Mailcatcher界面看到捕获到的邮件。
内容的提问来源于stack exchange,提问作者shuba.ivan
相关产品推荐
相关产品推荐

