Для начала я внимательно следил за этим руководством: 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_», как указано в руководстве для людей, которые просто запускают его локально.
Я создал в текущем рабочем каталоге каталог под названием «запись» и создал «Caddyfile» со следующим содержимым:
http://mail.fancydomain.tld {
proxy / rainloop:8888 {
transparent
}
}
Опять же, небольшое отличие от представленного на сайте. Я добавил к домену префикс «http: //» по той же причине, что и на шаге 2.
docker-compose up -dcurl -o setup.sh https://raw.githubusercontent.com/tomav/docker-mailserver/master/setup.sh; chmod a+x ./setup.sh, чтобы получить сценарий установки../setup.sh email add [email protected] fancypassword с этими точными учетными данными, опять же, чтобы минимизировать изменения, которые нужно отслеживать../setup.sh config 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» и попытался войти в клиент веб-почты с этим логином: [email protected] Password = fancypassword
Здесь я получаю сообщение об ошибке: «Не удается подключиться к серверу».
Я не уверен, что делать дальше. Я вообще не знаю, как устранять неполадки. Могу я получить некоторую помощь в том, что мне делать, чтобы устранить неполадки и выяснить, где находится ошибка?
Спасибо!
Обновление от 01.07.18: Итак ... Я добавил "127.0.0.1 mail" в "/ etc / hosts", и это сработало! RainLoop теперь может подключиться к моему почтовому серверу! Однако возникает новый вопрос. Для шага 9 вместо «mail» в трех полях «Сервер» я попробовал «mail.fancydomain.tld», и, согласно тесту, в соединении было отказано. Почему в соединении будет отказано для всего домена, но не для короткого домена?


Решение для этого - убедиться, что оба контейнера, RainLoop и Mail, совместно используют мостовую сеть. Тогда все конфигурации могут остаться прежними.