# SMTP-сервер подключается, но отправка почты не удаётся

**URL:** https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096
**Category:** Self-hosting
**Created:** [04.Декабрь.2019 21:38:02 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096 "2019-12-04T21:38:02Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![Callum\_OKane](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/callum_okane/32/155016_2.png) [@Callum\_OKane](https://meta.discourse.org/u/Callum_OKane)
#### Post date: [04.Декабрь.2019 21:38:02 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/1 "2019-12-04T21:38:02Z")

</div>

```plaintext
==================== ТЕСТ ПОЧТЫ ====================
Для надежного теста получите адрес на http://www.mail-tester.com/
Отправка письма на REDACTED . . .
Тестирование отправки на callumokane123@gmail.com с использованием support@maniabots.xyz:REDACTED@smtp.zoho.com:587.
Соединение с SMTP-сервером успешно.
Отправка на callumokane123@gmail.com . . .
Отправка письма не удалась.

==================== ГОТОВО! ====================

```

И я не получаю письмо с активацией для настройки аккаунта.

Любая помощь будет оценена 😝

---

<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: [04.Декабрь.2019 22:04:24 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/2 "2019-12-04T22:04:24Z")

</div>

Я предполагаю, что ваш форум называется forum.maniabots.xyz и отправляет письма с адреса noreply@forum.maniabots.xyz, но ваш почтовый сервер не позволяет этого сделать. В файле app.yml есть строка внизу, которую можно изменить для настройки адреса. Вам нужно отредактировать её вручную.

---

<div class="post-metadata">

### Author: ![Callum\_OKane](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/callum_okane/32/155016_2.png) [@Callum\_OKane](https://meta.discourse.org/u/Callum_OKane)
#### Post date: [04.Декабрь.2019 22:18:59 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/3 "2019-12-04T22:18:59Z")

</div>

Можете объяснить подробнее? Мой сайт находится по адресу support.maniabots.xyz, а электронная почта — support@maniabots.xyz. Мой файл конфигурации app.yml выглядит правильно.

---

<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: [04.Декабрь.2019 22:30:03 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/4 "2019-12-04T22:30:03Z")

</div>

```plaintext
## Любые пользовательские команды для выполнения после сборки
run:
  - exec: echo "Начало пользовательских команд"
  ## Если вы хотите установить адрес электронной почты 'From' для первой регистрации, раскомментируйте и измените:
  ## После получения первого письма с регистрацией снова закомментируйте эту строку. Она должна выполняться только один раз.
  - exec: rails r "SiteSetting.notification_email='support@maniabots.xyz'"
  - exec: echo "Конец пользовательских команд"

```

---

<div class="post-metadata">

### Author: ![Callum\_OKane](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/callum_okane/32/155016_2.png) [@Callum\_OKane](https://meta.discourse.org/u/Callum_OKane)
#### Post date: [04.Декабрь.2019 23:33:52 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/5 "2019-12-04T23:33:52Z")

</div>

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

---

<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: [05.Декабрь.2019 01:17:01 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/6 "2019-12-05T01:17:01Z")

</div>

Извините. Это было моё лучшее предположение.

---

<div class="post-metadata">

### Author: ![Callum\_OKane](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/callum_okane/32/155016_2.png) [@Callum\_OKane](https://meta.discourse.org/u/Callum_OKane)
#### Post date: [06.Декабрь.2019 18:53:56 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/7 "2019-12-06T18:53:56Z")

</div>

Итак, что мне нужно сделать? Если потребуется помощь, я могу предоставить вам доступ к серверу!

---

<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: [06.Декабрь.2019 18:58:38 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/8 "2019-12-06T18:58:38Z")

</div>

Извините. Я сделал всё, что мог, и у меня больше нет идей.

Если вы хотите, чтобы я решил вашу проблему, вы можете ознакомиться с моими пакетами установки: [https://www.literatecomputing.com/discourse-installation-packages/](https://www.literatecomputing.com/discourse-installation-packages/).

Я могу настроить для вас Mailgun, и всё будет работать. Существует сотня различных причин, по которым ваш собственный почтовый сервер может не работать.

---

<div class="post-metadata">

### Author: ![Callum\_OKane](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/callum_okane/32/155016_2.png) [@Callum\_OKane](https://meta.discourse.org/u/Callum_OKane)
#### Post date: [06.Декабрь.2019 19:09:12 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/9 "2019-12-06T19:09:12Z")

</div>

Что ж, я не хочу перенастраивать свою почту для моего домена и не хочу тратить больше денег на Mailgun.

---

<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: [06.Декабрь.2019 19:21:15 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/10 "2019-12-06T19:21:15Z")

</div>

Вам не нужно будет менять ничего из вашего существующего почтового ПО, а Mailgun бесплатен для первых 10 000 сообщений в месяц.

---

<div class="post-metadata">

### Author: ![dgtal1](https://avatars.discourse-cdn.com/v4/letter/d/e9bcb4/32.png) [@dgtal1](https://meta.discourse.org/u/dgtal1)
#### Post date: [14.Январь.2021 13:36:10 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/11 "2021-01-14T13:36:10Z")

</div>

Всем привет,  
кто-нибудь нашел решение этой проблемы?  
Я настроил Postfix на своем Docker-хосте для исходящей почты. Всё работает отлично, когда отправляю письма через SSH с помощью команды `mail`, но контейнер Discourse падает с той же ошибкой, что и у автора оригинального поста. Я воспользовался подсказкой из этой темы: [How to set SMTP config to use localhost?](https://meta.discourse.org/t/how-to-set-smtp-config-to-use-localhost/131464), и благодаря ей мне удалось избавиться от ошибки аутентификации в контейнере Discourse (я не передаю ему никаких логина/пароля для подключения к почтовому серверу), но теперь получаю ошибку «отправка письма не удалась». Есть какие-то идеи?

Я и не подозревал, что настройка почтового сервера станет самой сложной частью моего пути с Discourse… ☹ Установка Discourse просто безупречна и продумана до мелочей, в отличие от любой настройки почтового сервера под Linux.

Заранее спасибо!

---

<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: [14.Январь.2021 14:06:42 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/12 "2021-01-14T14:06:42Z")

</div>

> [@dgtal1](#):
>
> Я даже не представлял, что настройка почтового сервера станет самой сложной частью моего пути с Discourse…

Именно поэтому все инструкции по установке рекомендуют не пытаться делать это самостоятельно. Запуск собственного почтового сервера сейчас крайне сложен.

Скорее всего, Discourse использует имя хоста для адреса отправителя, а ваш почтовый сервер блокирует такие письма. Однако причин сбоя может быть десятки, и все они выходят за рамки той помощи, которую можно получить здесь.

---

<div class="post-metadata">

### Author: ![dgtal1](https://avatars.discourse-cdn.com/v4/letter/d/e9bcb4/32.png) [@dgtal1](https://meta.discourse.org/u/dgtal1)
#### Post date: [19.Январь.2021 09:54:53 UTC](https://meta.discourse.org/t/smtp-server-connects-mail-fails-to-send/135096/13 "2021-01-19T09:54:53Z")

</div>

Для тех, кто ищет решение этой проблемы — я её решил. Эта тема оказалась ключевой: [How to get Discourse to work with Postfix - #11 by shu\_kaze - Linux - Level1Techs Forums](https://forum.level1techs.com/t/how-to-get-discourse-to-work-with-postfix/100042/11)

Проблема заключалась в том, что Discourse не мог подключиться к моему серверу Postfix из Docker. Технически соединение приходило из другой сети, а Postfix не включал эту сеть в список разрешённых. Достаточно добавить сеть Docker (в моём случае `172.17.0.0/16`) в параметр `mynetworks` в конфигурации Postfix, и всё заработает!

Сначала нужно проверить, может ли Docker вообще подключиться к вашему Postfix (то есть, выполняется ли соединение до проверки разрешённых сетей в Postfix). Не забудьте проверить конфигурацию Postfix в параметре `inet_interfaces`. Я установил значение `all`, так как localhost не подойдёт для Discourse в Docker.

Если всё ещё не работает — проверьте логи Postfix. В моём случае они находятся в файле `/var/log/mail.log`.

Надеюсь, это поможет кому-то в будущем. У меня ушло много дней, чтобы всё запустить, но теперь я больше не полагаюсь на платные почтовые сервисы (я даже хотел их использовать, но не смог заставить их работать) и всё это бесплатно (не забудьте добавить SPF-записи для вашего домена! Иначе Gmail и другие почтовые провайдеры заблокируют ваши письма — они даже не попадут в спам, а будут просто недоставлены).
