【问题标题】:Mail client wouldn't connect with my Docker mail server邮件客户端无法连接到我的 Docker 邮件服务器
【发布时间】:2022-01-07 13:43:47
【问题描述】:

我已经构建了一个基于 Docker 的“完美服务器”克隆 this 教程,但更新了,我成功地通过 Roundcube 网络邮件应用程序在本地向外部电子邮件帐户发送和接收电子邮件,而无需使用外部中继.但是,我无法弄清楚为什么邮件客户端和邮件服务器之间的连接会不断失败。

首先,我的 docker-compose.yml 文件全局包含:

version: '3.0'
services:
mailserver:
 container_name: mailserver
 image: mailserver:latest
 build: .
 restart: on-failure
 hostname: ${HOSTNAME}
 domainname: ${DOMAIN}
 ports:
  - 80:80
  - 25:25 
  - 143:143
  - 465:465 
  - 587:587 
  - 993:993 
  - 995:995
 environment:
  - HOSTNAME=mail
  - DOMAIN=localhost
  - MYSQL_HOST=localhost
  - MYSQL_PASSWORD=password
 networks: 
  - default

networks:
 default-network:
  driver: bridge

最近,我构建了另一个映像,其中包含一个独立的邮件服务器,它存在于 Postfix、Dovecot、Roundcube、PhpMyAdmin 和 Apache 之外,因为我想测试有关邮件服务器和邮件客户端之间的连接失败的原因的差异。

为此,我几乎安装了所有依赖项,并更改了一些 Postfix 值,例如:

postconf -e myhostname="${HOSTNAME}"
postconf -e mydomain="${DOMAIN}"
postconf -e mydestination="${HOSTNAME}, localhost.${DOMAIN}, localhost, ${DOMAIN}"
postconf -e mynetworks="127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128"

对于最后一张图片,我刚刚按照 this 教程将 Thunderbird 连接到邮件服务器。

注意:我使用(和测试)端口 143 和 25 的原因,但不会以最终形式使用它们。

但出现了与“完美服务器”相同的情况,即客户端无法连接到邮件服务器。

同时,在构建该映像时,我按照完全相同的教程(完美服务器)在不使用容器(Debian 10)的情况下启动了一个虚拟机(相同的域、IP 地址和网络)。最后,我成功连接了 Outlook/Thunderbird(再次通过相同的端口)。

所以我得出的结论是,我遗漏了一些解决问题的方法,即即使端口打开并设置了 DNS 记录,Docker 容器也会阻止/阻止这些连接的原因。

问题:我做错了什么/为什么邮件客户端在 Docker 容器内时与邮件服务器的连接失败?

完美的基于服务器的 Docker 镜像供参考:https://github.com/jerob/docker-ispconfig

【问题讨论】:

    标签: docker postfix-mta mail-server dovecot ispconfig


    【解决方案1】:

    有点愚蠢,143 端口在容器本身内被关闭(通过 nmap -p port:domain 解决)。解决了这个问题。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多