Я настроил в моем app.yml отправку почты следующим образом:
DISCOURSE_SMTP_ADDRESS: mail.mysecrect.tld
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: minegenix@mysecret.tld
DISCOURSE_SMTP_PASSWORD: <секрет>
Я настроил в моем app.yml отправку почты следующим образом:
DISCOURSE_SMTP_ADDRESS: mail.mysecrect.tld
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: minegenix@mysecret.tld
DISCOURSE_SMTP_PASSWORD: <секрет>
Также нашел это в логах:
fail
Доставка почты 3ff63fed-4142-4042-ab33-29493b32b3a6@beta2.mysecret.tld (30001.9 мс)
Исключение задачи: истекло время выполнения
Возможно, вам потребуется добавить это в ваш app.yml
DISCOURSE_SMTP_ENABLE_START_TLS: false
Ладно, кстати, я использую mailcow!
Запущен ли сервер с доменом beta2.mysecret.tld, а не mysecret.tld?
Попробуйте следующие параметры:
DISCOURSE_SMTP_ADDRESS: 172.17.0.1 # используйте внутренний IP здесь — домен почтового сервера может быть разрешён некорректно
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "ВАШ-ПОЛЬЗОВАТЕЛЬ-SMTP"
DISCOURSE_SMTP_PASSWORD: "ВАШ-ПАРОЛЬ-SMTP"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (необязательно, по умолчанию true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_DOMAIN: mysecret.tld
mysecret.tld — это просто заглушка, скрывающая мой настоящий домен, так как я не хочу раскрывать адрес своего форума ![]()
Вы отправляете письма с адреса отправителя вроде «…@ beta2. mysecret.tld», но ваш аккаунт в mailcow зарегистрирован на «…@mysecret.tld»?
Нет, я отправляю письма с адреса …@mysecret.tld, а сайт работает по адресу beta2.mysecret.tld
да, я сейчас этим занимаюсь
Кстати, нужно ли запускать bootstrap каждый раз после пересборки?
Хорошо, я добавил настройки, но это не помогло.
./launcher enter app
getent hosts:(dig, nslookup, ping и т. д. не установлены внутри контейнера.)
getent hosts ваш.smtp.сервер
Результат при успехе:
# IPv4
123.123.123.123 ваш.smtp.сервер
# IPv6
2001:db8:0:0:0:ff00:42:8329 ваш.smtp.сервер
openssl:(telnet, nc и т. д. не установлены внутри контейнера.)
Поэкспериментируйте с различными настройками, пока не добьётесь успешного подключения.
openssl s_client -connect ваш.smtp.сервер:465
openssl s_client -connect ваш.smtp.сервер:587 -starttls smtp
# IPv4
openssl s_client -connect 172.17.0.123:465
openssl s_client -connect 172.17.0.123:587 -starttls smtp
# IPv6
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:465"
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:587" -starttls smtp
См.: Как проверить SMTP-соединение → Шаг 3: Проверка SMTP-соединения через TLS с помощью OpenSSL
![]()
( ifconfig , ip и т. д. не установлены внутри контейнера.)
hostname -I
Результат, например:
172.17.0.2
Не удаётся установить соединение с openssl. Кроме того, при выполнении getent я получаю только следующее:
2606:4700:3032::ac43:d2f1 mail.secret.tdl
2606:4700:3033::6815:4db8 mail.secret.tld
(вместо моего реального домена указано secret.tld)
Предположим наугад: это публичный IP-адрес? Настроен ли ваш mailcow на прослушивание SMTP-подключений именно на этом публичном IP-адресе или только во внутренней сети?
Внутри контейнера Discourse вы можете получить IP-адрес контейнера с помощью команды:
hostname -I
Находится ли ваш mailcow в той же внутренней (docker-)сети?
172.17.0.2 — это то, что я получаю от команды hostname -I
Можете ли вы зайти в контейнер mailcow и выполнить команду hostname -I? Являются ли Mailcow и Discourse двумя отдельными контейнерами Docker на одном и том же хосте?
Как мне попасть в контейнер mailcow? Скрипта запуска нет.
Я тоже не знаю о mailcow. Возможно, лучше обратиться к сообществу mailcow: https://community.mailcow.email/
Что мне использовать для настройки почтовой системы или какое программное обеспечение я могу установить на Ubuntu, чтобы оно работало как почтовый сервис для моих форумов?