我已经建立了一个基于码头的“完美服务器”克隆的这教程,但更最新的和我成功地在本地发送和接收电子邮件通过圆立方网络邮件应用程序的外部电子邮件帐户,而不使用外部中继。但是,我无法理解为什么邮件客户端和邮件服务器之间的连接会持续失败。
首先,我的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、Round多维数据集、PhpMyAdmin和Apache组成,因为我想测试为什么邮件服务器和邮件客户端之间的连接失败的原因。
为此,我几乎安装了所有依赖项,并更改了一些后缀值,如:
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"
对于最后一张图片,我刚刚遵循了这教程,它应该将Thunderbird连接到邮件服务器。
注意到:我使用(和测试)端口143和25的原因,但不会在最终形式中使用它们。
但是发生了与“完美服务器”-image相同的事情,即客户端无法连接到邮件服务器。
同时,在构建映像时,我按照完全相同的教程(完美的服务器),在没有使用容器(Debian 10)的情况下启动了一个虚拟机(相同的域、ip地址和网络)。最后,我成功地连接了Outlook/Thunderbird (同样是在相同的端口上)。
因此,我得出的结论是,我缺少一些东西来解决为什么Docker容器阻止/阻止这些连接的原因,即使打开了端口并设置了DNS记录。
问题:我做错了什么?为什么邮件客户端在Docker容器中时无法连接到邮件服务器?
完善的基于服务器的码头形象供参考:https://github.com/jerob/docker-ispconfig
发布于 2022-01-08 15:45:12
有点愚蠢,143号端口是在容器本身内关闭的(用nmap -p端口:domain计算出来)。解决了这个问题。
https://stackoverflow.com/questions/70622139
复制相似问题