RainLoop+tomav/docker-mailserver:无法从 RainLoop Webmail 客户端连接到服务器
RainLoop+tomav/docker-mailserver: Cannot connect to server from RainLoop Webmail client
首先,我遵循了这封信的指南:https://www.davd.eu/byecloud-building-a-mailserver-with-modern-webmail/
我正在尝试为我的服务器创建一个邮件服务器,但我想我应该先在本地测试上面的实现。确保我可以准备好所有东西,至少 运行 这样我就可以在服务器上尝试之前看到我应该期待什么。这是我所做的:
- 将“127.0.0.1 mail.fancydomain.tld”添加到“/etc/hosts”(我想首先使用 mail.fancydomain.tld 而不是邮件服务器所在的实际域,以尽量减少任何按照指南进行更改)
我创建了这个"docker-compose.yml":
version: "3"
services:
rainloop:
image: hardware/rainloop
links:
- mail
volumes:
- ./data/rainloop:/rainloop/data
mail:
image: tvial/docker-mailserver:latest
restart: always
hostname: mail
domainname: fancydomain.tld
container_name: mail
ports:
- "25:25"
- "143:143"
- "587:587"
- "993:993"
- "4190:4190"
volumes:
- ./data/mail/data:/var/mail
- ./data/mail/state:/var/mail-state
- ./mail/config:/tmp/docker-mailserver/
- ./data/entry/acme/acme-v01.api.letsencrypt.org/sites/mail.fancydomain.tld:/tmp/ssl:ro
environment:
- ENABLE_SPAMASSASSIN=1
- ENABLE_CLAMAV=1
- ENABLE_FAIL2BAN=1
- ENABLE_POSTGREY=1
- ONE_DIR=1
- DMS_DEBUG=0
- ENABLE_MANAGESIEVE=1
cap_add:
- NET_ADMIN
entry:
image: abiosoft/caddy:0.10.4
restart: always
privileged: true
links:
- rainloop
ports:
- "80:80"
- "443:443"
volumes:
- ./entry/Caddyfile:/etc/Caddyfile
- ./data/entry:/root/.caddy
此 "docker-compose.yml" 与前面提到的站点提供的版本之间存在细微差别。我所做的只是按照指南的指示删除前缀为 "SSL_" 的环境变量,这些人只是在本地 运行 它。
我在当前工作目录中创建了一个名为 "entry" 的目录,并创建了一个包含以下内容的 "Caddyfile":
http://mail.fancydomain.tld {
proxy / rainloop:8888 {
transparent
}
}
再次强调,与网站上提供的只是一点点不同。出于与步骤 2.
相同的原因,我在域前加上 "http://" 前缀
- 我用
docker-compose up -d
成功启动了容器
- 我运行:
curl -o setup.sh https://raw.githubusercontent.com/tomav/docker-mailserver/master/setup.sh; chmod a+x ./setup.sh
获取安装脚本
- 我 运行:
./setup.sh email add webmaster@fancydomain.tld fancypassword
使用那些确切的凭据,再次最小化要跟踪的更改。
- 我通过 运行
./setup.sh config dkim
设置了 DKIM 记录,但我没有进一步处理这些记录...因为我不确定如何在本地处理这些记录。
- 我通过“http://mail.fancydomain.tld/" and proceeded to "http://mail.fancydomain.tld/?admin”成功连接到 RainLoop Webmail 客户端,使用凭据登录:Login=admin Password=12345
我继续 "Domains" > "Add Domain" 并按如下方式填写了表格:
Name: fancydomain.tld
IMAP
Server: mail
Port: 143
Secure: STARTTLS
SMTP
Server: mail
Port: 587
Secure: STARTTLS
Use short login: Checked
Use authentication: Checked
SIEVE
Allow sieve scripts: Checked
Server: mail
Port: 4190
Secure: STARTTLS
从这里我返回到“http://mail.fancydomain.tld”并尝试使用以下登录名登录到 Webmail 客户端:Login=webmaster@fancydomain.tld Password=fancypassword
这是我收到错误的地方:"Can't connect to server"
我不知道从这里到哪里去。我根本不知道如何排除故障。我能否获得一些帮助,了解我应该如何进行故障排除并找出错误所在?
谢谢!
07/01/18 更新:所以...我将“127.0.0.1 邮件”添加到“/etc/hosts”中并且成功了! RainLoop 现在可以连接到我的邮件服务器了!但这提出了一个新问题。对于第 9 步,我尝试 "mail.fancydomain.tld" 而不是 "mail" 用于三个 "Server" 字段,并且根据测试,连接被拒绝。为什么全域会被拒绝连接,而短域却不会?
这个解决方案是为了确保 RainLoop 和 Mail 这两个容器共享一个桥接网络。然后所有的配置都可以保持不变。
首先,我遵循了这封信的指南:https://www.davd.eu/byecloud-building-a-mailserver-with-modern-webmail/
我正在尝试为我的服务器创建一个邮件服务器,但我想我应该先在本地测试上面的实现。确保我可以准备好所有东西,至少 运行 这样我就可以在服务器上尝试之前看到我应该期待什么。这是我所做的:
- 将“127.0.0.1 mail.fancydomain.tld”添加到“/etc/hosts”(我想首先使用 mail.fancydomain.tld 而不是邮件服务器所在的实际域,以尽量减少任何按照指南进行更改)
我创建了这个"docker-compose.yml":
version: "3" services: rainloop: image: hardware/rainloop links: - mail volumes: - ./data/rainloop:/rainloop/data mail: image: tvial/docker-mailserver:latest restart: always hostname: mail domainname: fancydomain.tld container_name: mail ports: - "25:25" - "143:143" - "587:587" - "993:993" - "4190:4190" volumes: - ./data/mail/data:/var/mail - ./data/mail/state:/var/mail-state - ./mail/config:/tmp/docker-mailserver/ - ./data/entry/acme/acme-v01.api.letsencrypt.org/sites/mail.fancydomain.tld:/tmp/ssl:ro environment: - ENABLE_SPAMASSASSIN=1 - ENABLE_CLAMAV=1 - ENABLE_FAIL2BAN=1 - ENABLE_POSTGREY=1 - ONE_DIR=1 - DMS_DEBUG=0 - ENABLE_MANAGESIEVE=1 cap_add: - NET_ADMIN entry: image: abiosoft/caddy:0.10.4 restart: always privileged: true links: - rainloop ports: - "80:80" - "443:443" volumes: - ./entry/Caddyfile:/etc/Caddyfile - ./data/entry:/root/.caddy
此 "docker-compose.yml" 与前面提到的站点提供的版本之间存在细微差别。我所做的只是按照指南的指示删除前缀为 "SSL_" 的环境变量,这些人只是在本地 运行 它。
我在当前工作目录中创建了一个名为 "entry" 的目录,并创建了一个包含以下内容的 "Caddyfile":
http://mail.fancydomain.tld { proxy / rainloop:8888 { transparent } }
再次强调,与网站上提供的只是一点点不同。出于与步骤 2.
相同的原因,我在域前加上 "http://" 前缀
- 我用
docker-compose up -d
成功启动了容器
- 我运行:
curl -o setup.sh https://raw.githubusercontent.com/tomav/docker-mailserver/master/setup.sh; chmod a+x ./setup.sh
获取安装脚本 - 我 运行:
./setup.sh email add webmaster@fancydomain.tld fancypassword
使用那些确切的凭据,再次最小化要跟踪的更改。 - 我通过 运行
./setup.sh config dkim
设置了 DKIM 记录,但我没有进一步处理这些记录...因为我不确定如何在本地处理这些记录。 - 我通过“http://mail.fancydomain.tld/" and proceeded to "http://mail.fancydomain.tld/?admin”成功连接到 RainLoop Webmail 客户端,使用凭据登录:Login=admin Password=12345
我继续 "Domains" > "Add Domain" 并按如下方式填写了表格:
Name: fancydomain.tld IMAP Server: mail Port: 143 Secure: STARTTLS SMTP Server: mail Port: 587 Secure: STARTTLS Use short login: Checked Use authentication: Checked SIEVE Allow sieve scripts: Checked Server: mail Port: 4190 Secure: STARTTLS
从这里我返回到“http://mail.fancydomain.tld”并尝试使用以下登录名登录到 Webmail 客户端:Login=webmaster@fancydomain.tld Password=fancypassword
这是我收到错误的地方:"Can't connect to server"
我不知道从这里到哪里去。我根本不知道如何排除故障。我能否获得一些帮助,了解我应该如何进行故障排除并找出错误所在?
谢谢!
07/01/18 更新:所以...我将“127.0.0.1 邮件”添加到“/etc/hosts”中并且成功了! RainLoop 现在可以连接到我的邮件服务器了!但这提出了一个新问题。对于第 9 步,我尝试 "mail.fancydomain.tld" 而不是 "mail" 用于三个 "Server" 字段,并且根据测试,连接被拒绝。为什么全域会被拒绝连接,而短域却不会?
这个解决方案是为了确保 RainLoop 和 Mail 这两个容器共享一个桥接网络。然后所有的配置都可以保持不变。