首先,我按照本指南中的字母操作:https://www.davd.eu/byecloud-building-a-mailserver-with-modern-webmail/
我正在尝试为服务器创建一个邮件服务器,但是我认为我应该先在本地测试以上实现。确保至少可以启动并运行所有内容,以便在尝试在服务器上之前可以查看期望的内容。这是我所做的:
我创建了这个“ 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记录,但是我没有进一步处理这些记录...因为我不确定在本地如何处理这些记录。我进入“域”>“添加域”,并使用填写好的表格:
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
这是我得到错误的地方:“无法连接到服务器”
我不确定从这里去哪里。我根本不知道如何解决问题。请问我应该做些什么来排除故障并弄清楚错误出在哪里?
谢谢!
07/01/18更新:所以...我在“ / etc / hosts”中添加了“ 127.0.0.1 mail”,它起作用了! RainLoop现在可以连接到我的邮件服务器了!但是,这提出了一个新问题。对于步骤9,我尝试使用“ mail.fancydomain.tld”代替三个“服务器”字段的“邮件”,并且根据测试,连接被拒绝。为什么会拒绝整个域的连接,而不会拒绝短域的连接?
答案 0 :(得分:0)
该解决方案可以确保RainLoop和Mail这两个容器共享一个桥接网络。然后所有配置可以保持不变。