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

Docker Compose部署Django与Mailhog时发送邮件出现连接拒绝错误

问题解决方法

问题出在你的EMAIL_HOST配置上,把.env里的EMAIL_HOST = '0.0.0.0'改成EMAIL_HOST = 'mailhog'即可,原因和操作细节如下:

为什么会出现连接拒绝?

  • 本地运行Django时,0.0.0.0指向你的宿主机,Mailhog在宿主机的1025端口监听,所以能正常建立连接。
  • 但在Docker容器环境中,0.0.0.0指的是容器自身的网络接口,而Mailhog是另一个独立容器——不过两个容器处于同一个my_net自定义网络中,Docker Compose会自动为每个服务分配DNS解析,直接用服务名mailhog就能访问到Mailhog容器的内部网络,不需要用宿主机IP或0.0.0.0。

修改后的.env配置

EMAIL_HOST = 'mailhog'
EMAIL_PORT = '1025'
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

重启服务生效

执行以下命令重启容器,让新的环境变量生效:

docker-compose down && docker-compose up -d

可选验证步骤

  • 进入Django容器,测试与Mailhog的网络连通性:
docker exec -it my_api ping mailhog
  • 发送测试邮件后,访问http://localhost:8025打开Mailhog的Web界面,确认邮件是否正常接收。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:30:53