# Свежая установка Discourse/Docker не отправляет письма

**URL:** https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255
**Category:** Self-hosting
**Created:** [10.Ноябрь.2022 22:31:00 UTC](https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255 "2022-11-10T22:31:00Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![funktionierbar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/funktionierbar/32/281388_2.png) [@funktionierbar](https://meta.discourse.org/u/funktionierbar)
#### Post date: [10.Ноябрь.2022 22:31:00 UTC](https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255/1 "2022-11-10T22:31:00Z")

</div>

Всем привет,  
Я хочу перенести давно существующий форум с phpBB3 на Discourse. Мне удалось настроить Docker, и я получил доступ к начальной настройке. К сожалению, письма не отправляются, поэтому я не могу завершить инициализацию.

Я провёл отладку, но не смог найти причину, поэтому обращаюсь к вам за помощью.

Моя конфигурация следующая: я настроил apache2 как обратный прокси для Docker, и это работает. Мой почтовый сервер — это mailcow в Docker на той же машине. Почтовый сервер тщательно протестирован и работает стабильно ежедневно через SMTP с STARTTLS на порту 587 и через веб-почту.

Конфигурация в моём файле app.yml выглядит так:

```plaintext
  DISCOURSE_SMTP_ADDRESS: mail.example.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: discourse@example.com
  DISCOURSE_SMTP_PASSWORD: "password"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true # (опционально, по умолчанию true)
  #DISCOURSE_SMTP_DOMAIN: mail.example.com
  DISCOURSE_NOTIFICATION_EMAIL: discourse@example.com

```

При запуске ./discourse-doctor я получаю:

```plaintext
==================== ТЕСТ ПИСЬМА ====================
Для надёжного теста получите адрес на http://www.mail-tester.com/
Или просто отправьте тестовое письмо себе.
Адрес электронной почты для теста? ('n' чтобы пропустить) [admin@example.com]: 
Отправка письма на admin@example.com. . . 
Проверка отправки на admin@example.com через mail.example.com:587, пользователь: discourse@example.com с обычной аутентификацией.
 =======================================  
ОШИБКА 
 ========================================
                                   НЕОЖИДАННАЯ ОШИБКА

Невозможно назначить запрошенный адрес - connect(2) для [правильный IPv6]:587

====================================== 
РЕШЕНИЕ 
=======================================
Это не распространённая ошибка. Рекомендуемого решения не существует!

Пожалуйста, сообщите точное сообщение об ошибке выше на https://meta.discourse.org/
(И решение, если вы его найдёте!)

```

Не найдя в интернете людей с аналогичными сообщениями об ошибках, я обратился [к этой теме](https://meta.discourse.org/t/troubleshoot-email-on-a-new-discourse-install/16326).  
Я легко смог подключиться к почтовому серверу с помощью telnet извне контейнера.

Что я попробовал внутри контейнера:

> getent hosts [mail.example.com](http://mail.example.com)

вернул правильный IPv6-адрес.  
Но затем начали появляться ошибки:

```plaintext
openssl s_client -connect mail.example.com:587 -starttls smtp
140124593714496:error:0200206E:system library:connect:Connection timed out:../crypto/bio/b_sock2.c:110:
140124593714496:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=110

```

```plaintext
openssl s_client -6 -connect "[правильный IPv6]:587" -starttls smtp
139918557709632:error:02002063:system library:connect:Cannot assign requested address:../crypto/bio/b_sock2.c:110:
139918557709632:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=99

```

```plaintext
 openssl s_client -connect smtp.gmail.com:587 -starttls smtp

```

работает отлично.  
Когда я пытаюсь выполнить

` openssl s_client -connect mail.example.com:587 -starttls smtp`

извне контейнера, всё работает тоже отлично.  
В логах my mailcow/postfix ничего нет…  
Я в тупике. Можете подсказать, куда смотреть дальше?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [11.Ноябрь.2022 10:46:27 UTC](https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255/2 "2022-11-11T10:46:27Z")

</div>

См. [Устранение неполадок с электронной почтой при новой установке Discourse](https://meta.discourse.org/t/troubleshoot-email-on-a-new-discourse-install/16326).

Проблема, скорее всего, в том, что адрес электронной почты для уведомлений не совпадает с тем, который настроен на вашем почтовом сервере для отправки.

Но это не объясняет ошибки «connection timed out» (превышено время ожидания подключения). Похоже, это проблема сети Docker.

---

<div class="post-metadata">

### Author: ![funktionierbar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/funktionierbar/32/281388_2.png) [@funktionierbar](https://meta.discourse.org/u/funktionierbar)
#### Post date: [11.Ноябрь.2022 18:32:11 UTC](https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255/3 "2022-11-11T18:32:11Z")

</div>

Спасибо за ваш ответ. Я попробовал использовать один и тот же адрес в обоих полях, но изменений нет, ошибка та же.  
Следуя теме по устранению неполадок:

## Что говорят логи Discourse?

`Job exception: Cannot assign requested address - connect(2) for [_correct IPv6_]:587

## Что говорят логи вашего почтового провайдера?

Нет записей в логах, связанных с письмами, отправленными из Discourse.

Затем я попробовал этот метод [https://www.saotn.org/test-smtp-authentication-starttls/](https://www.saotn.org/test-smtp-authentication-starttls/), чтобы проверить, смогу ли я пройти аутентификацию через openssl. Это работает нормально с сервера, но не изнутри контейнера; там возникает ошибка, которую я описал в первом сообщении.

Как можно узнать, что блокирует соединение здесь?

---

<div class="post-metadata">

### Author: ![funktionierbar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/funktionierbar/32/281388_2.png) [@funktionierbar](https://meta.discourse.org/u/funktionierbar)
#### Post date: [12.Ноябрь.2022 12:56:06 UTC](https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255/4 "2022-11-12T12:56:06Z")

</div>

О боже, это было так просто.  
Мне нужно было просто включить IPv6 в моей сети Docker — достаточно первых трёх шагов из этого руководства, и всё заработало.

> **[Build a Docker IPv6 Network](https://dev.to/joeneville_/build-a-docker-ipv6-network-dfj)**
>
> 6️⃣ Docker supports IPv6 addressing and IPv6 network builds. 🔇 But IPv6 is not enabled by default. 🔊...

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [12.Декабрь.2022 12:56:12 UTC](https://meta.discourse.org/t/fresh-discourse-docker-install-wont-send-mails/245255/5 "2022-12-12T12:56:12Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
