[英]Mail client wouldn't connect with my Docker mail server
我已經構建了本教程的基於 Docker 的“完美服務器”克隆,但更新了更多,並且我成功地通過 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"
對於最后一張圖片,我剛剛按照本教程將 Thunderbird 連接到郵件服務器。
注意:我使用(和測試)端口 143 和 25 的原因,但不會以最終形式使用它們。
但是發生了與“完美服務器”圖像相同的事情,即客戶端無法連接到郵件服務器。
同時,在構建該映像時,我按照完全相同的教程(完美服務器)在不使用容器(Debian 10)的情況下啟動了一個虛擬機(相同的域,ip 地址和網絡)。 最后,我成功連接了 Outlook/Thunderbird(再次通過相同的端口)。
所以我得出的結論是,我錯過了一些解決問題的問題,即 Docker 容器即使在端口打開並且設置了 DNS 記錄的情況下也會阻止/阻止這些連接的原因。
問題:我做錯了什么/為什么郵件客戶端在 Docker 容器內時無法連接到郵件服務器?
基於完美服務器的 Docker 鏡像供參考: https://github.com/jerob/docker-ispconfig
有點愚蠢,端口 143 在容器本身內被關閉(用 nmap -p port:domain 弄清楚)。 這解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.