Привет, Discourse,
после пересборки mail-receiver и приложения сегодня утром я получил следующий результат для писем, которые ранее отправлялись успешно:
Привет, Discourse,
после пересборки mail-receiver и приложения сегодня утром я получил следующий результат для писем, которые ранее отправлялись успешно:
Может ли это быть связано с системными часами после обновления ядра Ubuntu?
Верно, тестовое письмо, которое я отправил, вернулось с той же ошибкой, что четко видно в .\launcher logs mail-receiver.
Хорошо, и контейнер mail-receiver, и контейнер app настроены на другое время, отличное от времени на хост-системе
Хост-система — правильное время ![]()
Контейнер app — неверное время ![]()


Контейнер mail-receiver — неверное время ![]()

Хорошо, значит и контейнер mail-receiver, и контейнер приложения установлены на другое время относительно хост-системы.
Похоже, что у них установлено другое временнóе поясное значение, что нормально.
Если вы запускали эти команды с интервалом в пару минут, то всё выглядит хорошо.
По этим скриншотам невозможно определить, что именно происходит.
Какой входящий адрес у вашего форума? (желательно слегка отредактированный)
С какого адреса он приходит?
Что происходит с почтой, отправленной на него?
Пожалуйста, используйте текст ваших логов вместо скриншотов.
Какой входящий адрес у вашего форума? (желательно слегка скрытый)
С какого адреса он приходит?
Что происходит с письмами, отправленными на него?
Он подключается к mail-receiver, но mail-receiver видит IP как неизвестный, поэтому возвращает письмо обратно. Письмо не попадает в очередь mail-receiver.
Почтовый сервер-получатель видит IP как неизвестный, поэтому возвращает письмо обратно
Я не считаю это верным. Это предупреждение, а не ошибка.
На этом скриншоте (пожалуйста, сделайте этот текст) показано, что адрес ppyem30@discourse.domain.com не принят — это, похоже, и есть причина сбоя.
Стоит подробнее изучить строку using backwards-compatible default setting…, которая, похоже, указывает на причину.
root@ubuntu:/var/discourse# 17 июля 15:40:20 ubuntu-mail-receiver postfix/master[1]: демон запущен -- версия 3.7.11, конфигурация /etc/postfix
17 июля 15:41:32 ubuntu-mail-receiver postfix/smtpd[122]: подключение от btprdrgo001.btinternet.com[65.20.50.131]
17 июля 15:41:32 ubuntu-mail-receiver postfix/smtpd[122]: отключение от btprdrgo001.btinternet.com[65.20.50.131] ehlo=1 quit=1 commands=2
17 июля 15:41:32 ubuntu-mail-receiver postfix/smtpd[122]: подключение от btprdrgo001.btinternet.com[65.20.50.6]
17 июля 15:41:32 ubuntu-mail-receiver postfix/smtpd[122]: NOQUEUE: reject: RCPT от btprdrgo001.btinternet.com[65.20.50.6]: 554 5.7.1 <person@discourse.redacted.com>: Адрес получателя отклонён: Письма на этот адрес не принимаются. Проверьте адрес и попробуйте отправить снова?; от=<ethan.redacted@btinternet.com> до=<person@discourse.redacted.com> proto=ESMTP helo=<btprdrgo001.btinternet.com>
17 июля 15:41:32 ubuntu-mail-receiver postfix/smtpd[122]: используется обратная совместимая настройка по умолчанию smtpd_relay_before_recipient_restrictions=no для отклонения получателя "person@discourse.redacted.com" от клиента "btprdrgo001.btinternet.com[65.20.50.6]"
17 июля 15:41:32 ubuntu-mail-receiver postfix/smtpd[122]: отключение от btprdrgo001.btinternet.com[65.20.50.6] ehlo=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=4/6
17 июля 15:42:49 ubuntu-mail-receiver postfix/smtpd[122]: предупреждение: имя хоста unassigned.quadranet.com не разрешается в адрес 198.55.98.78
17 июля 15:42:49 ubuntu-mail-receiver postfix/smtpd[122]: подключение от unknown[198.55.98.78]
17 июля 15:42:49 ubuntu-mail-receiver postfix/smtpd[122]: отключение от unknown[198.55.98.78] ehlo=1 auth=0/1 quit=1 commands=2/3
17 июля 15:43:35 ubuntu-mail-receiver postfix/smtpd[122]: подключение от unknown[196.251.92.207]
17 июля 15:43:36 ubuntu-mail-receiver postfix/smtpd[122]: отключение от unknown[196.251.92.207] ehlo=1 quit=1 commands=2
далее
./launcher destroy mail-receiver
затем следуйте инструкциям здесь
Передача почты, отправленной на discourse.ДОМЕННОЕИМЯ.com, в Discourse
Запуск OpenDKIM...
perl: предупреждение: не удалось установить локаль.
perl: предупреждение: пожалуйста, проверьте, что ваши настройки локали:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
поддерживаются и установлены в вашей системе.
perl: предупреждение: возврат к стандартной локали ("C").
Добавление пользователя `postfix` в группу `opendkim` ...
<86>Июл 17 16:00:00 usermod[17]: добавление 'postfix' в группу 'opendkim'<86>Июл 17 16:00:00 usermod[17]: добавление 'postfix' в shadow-группу 'opendkim'<86>Готово.
Запуск OpenDMARC...
perl: предупреждение: не удалось установить локаль.
perl: предупреждение: пожалуйста, проверьте, что ваши настройки локали:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
поддерживаются и установлены в вашей системе.
perl: предупреждение: возврат к стандартной локали ("C").
<22>Июл 17 16:00:00 opendkim[25]: OpenDKIM Filter v2.11.0 запущен (аргументы: -x /etc/opendkim.conf)Добавление пользователя `postfix` в группу `opendmarc` ...
<86>Июл 17 16:00:00 usermod[32]: добавление 'postfix' в группу 'opendmarc'<86>Июл 17 16:00:00 usermod[32]: добавление 'postfix' в shadow-группу 'opendmarc'<86>Готово.
<22>Июл 17 16:00:00 opendmarc[40]: OpenDMARC Filter v1.4.2 запущен (аргументы: -c /etc/opendmarc.conf)<22>Июл 17 16:00:00 opendmarc[40]: дополнительные доверенные службы аутентификации: (нет)postfix: Postfix использует обратно совместимые настройки по умолчанию
Июл 17 16:00:00 ubuntu-mail-receiver postfix[52]: Postfix использует обратно совместимые настройки по умолчанию
postfix: подробности см. на http://www.postfix.org/COMPATIBILITY_README.html
Июл 17 16:00:00 ubuntu-mail-receiver postfix[52]: подробности см. на http://www.postfix.org/COMPATIBILITY_README.html
postfix: чтобы отключить обратно совместимый режим, используйте "postconf compatibility_level=3.6" и "postfix reload"
Июл 17 16:00:00 ubuntu-mail-receiver postfix[52]: чтобы отключить обратно совместимый режим, используйте "postconf compatibility_level=3.6" и "postfix reload"
Запуск Postfix
Июл 17 16:00:00 ubuntu-mail-receiver postfix/master[1]: демон запущен -- версия 3.7.11, конфигурация /etc/postfix
Июл 17 16:00:28 ubuntu-mail-receiver postfix/smtpd[123]: подключение от mail-ukwestazon11021090.outbound.protection.outlook.com[52.101.100.90]
Июл 17 16:00:28 ubuntu-mail-receiver postfix/smtpd[123]: NOQUEUE: reject: RCPT от mail-ukwestazon11021090.outbound.protection.outlook.com[52.101.100.90]: 554 5.7.1 <person@discourse.ДОМЕННОЕИМЯ.com>: адрес получателя отклонён: почта на этот адрес не принимается. Проверьте адрес и попробуйте отправить снова?; от=<ethan@ДОМЕННОЕИМЯ.com> до=<person@discourse.ДОМЕННОЕИМЯ.com> протокол=ESMTP helo=<CWXP265CU009.outbound.protection.outlook.com>
Июл 17 16:00:28 ubuntu-mail-receiver postfix/smtpd[123]: используется обратно совместимая настройка по умолчанию smtpd_relay_before_recipient_restrictions=no для отклонения получателя "person@discourse.ДОМЕННОЕИМЯ.com" от клиента "mail-ukwestazon11021090.outbound.protection.outlook.com[52.101.100.90]"
Июл 17 16:00:28 ubuntu-mail-receiver postfix/smtpd[123]: отключение от mail-ukwestazon11021090.outbound.protection.outlook.com[52.101.100.90] ehlo=1 mail=1 rcpt=0/1 quit=1 команды=3/4
Детали ошибки
Ошибка: 554 5.7.1 <person@discourse.YOURDOMAIN.com>: Адрес получателя отклонён: Почта на этот адрес не принимается. Проверьте адрес и попробуйте отправить снова?
Сообщение отклонено сервером: ubuntu-mail-receiver.localdomain
Я бы подробнее изучил строку «используя обратно совместимые настройки по умолчанию…», поскольку она, похоже, указывает на причину проблемы.
Я попробовал спросить на ask.discourse.com
Supermathie намекает на функцию, поддерживаемую настройкой прямого получения почты в Discourse, которая позволяет ограничить, какие адреса электронной почты контейнер получения почты Discourse будет принимать. Это достигается созданием и монтированием файла «valid_recipients» в конфигурации контейнера получения почты в Docker, обычно в mail-receiver.yml.
Вот что это означает и зачем это нужно:
Что означает монтирование файла recipients?
В вашем файле
mail-receiver.ymlв разделеvolumes:добавьте следующую строку:- /var/discourse/shared/mail-receiver/valid_recipients:/etc/postfix/valid_recipientsЭта строка указывает Docker сопоставить файл
/var/discourse/shared/mail-receiver/valid_recipientsс вашей хост-системы с файлом/etc/postfix/valid_recipientsвнутри контейнера.
Для чего нужен файл valid_recipients?
Вы создаёте файл
/var/discourse/shared/mail-receiver/valid_recipientsсамостоятельно и указываете в нём по одному допустимому адресу получателя в каждой строке. Например:discourse@discourse.yourdomain.com incoming+test@discourse.yourdomain.comВ этом случае Postfix в контейнере получения почты будет принимать только письма, отправленные на один из этих адресов. Все остальные будут отклонены на уровне SMTP.
Зачем использовать файл valid_recipients?
- Безопасность: Ограничивает круг отправителей, которые могут отправлять письма в Discourse по электронной почте, снижая риски спама или злоупотреблений.
- Контроль: Вы можете точно указать, на какие адреса будет «слушать» ваш форум, что полезно, если у вас много пользовательских маршрутов электронной почты или вы хотите разрешить только определённые адреса групп или категорий.
- Отладка и фильтрация: Помогает в отладке, гарантируя, что только intended получатели получают письма для обработки.
Где об этом говорится или обсуждается?
Использование описано в различных руководствах по настройке входящей почты в Discourse на meta, но пост Supermathie предлагает способ принудительного применения ограничений на уровне Postfix (SMTP-сервера), а не только во внутренней обработке Discourse.
Вот обзор настройки прямого получения почты с подробностями о кастомизации Postfix для продвинутых сценариев:
- Настройка прямого получения входящей почты для самодостаточных сайтов с помощью Mail-Receiver
- Настройка конфигурации Postfix в контейнере получения почты
Также конкретные подсказки о подходах с «valid_recipients» можно найти в этом ответе на meta:
Итог:
Намёк Supermathie — это способ строго контролировать на уровне SMTP-сервера, какие адреса будут получать почту в Discourse, путём указания списка разрешённых адресов получателей в файле «valid_recipients», который монтируется в контейнер получения почты. Это помогает обеспечить безопасность и контроль входящей почты. Подробнее см. в официальных руководствах:
Я выполнил все шаги. Один момент требовал уточнения: когда я перехожу в директорию /var/discourse/shared/mail-receiver/,
должен ли я был ввести
nano valid_recipients
или
nano valid_recipients.yml.
Это было просто копирование и вставка в mail-receiver.yml, после чего последовала ещё одна пересборка, что соответствует приведённым ниже логам:
root@ubuntu:/var/discourse# ./launcher logs mail-receiver
x86_64 arch detected.
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Operating environment:
HOSTNAME=ubuntu-mail-receiver
LANGUAGE=en_US.UTF-8
MAIL_DOMAIN=discourse.DOMAINNAME.com
DOCKER_HOST_IP=172.17.0.1
PWD=/
DISCOURSE_BASE_URL=https://DOMAINNAME.com
HOME=/root
LANG=en_US.UTF-8
TERM=xterm
SHLVL=1
DISCOURSE_API_USERNAME=system
LC_ALL=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
INCLUDE_DMARC=true
DISCOURSE_API_KEY=[64 digit api key redacted]
_=/usr/bin/env
Delivering mail sent to discourse.DOMAINNAME.com to Discourse
Starting OpenDKIM...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user `postfix' to group `opendkim' ...
<86>Jul 17 19:38:44 usermod[16]: add 'postfix' to group 'opendkim'<86>Jul 17 19:38:44 usermod[16]: add 'postfix' to shadow group 'opendkim'Done.
Starting OpenDMARC...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
<22>Jul 17 19:38:44 opendkim[24]: OpenDKIM Filter v2.11.0 starting (args: -x /etc/opendkim.conf)Adding user `postfix' to group `opendmarc' ...
<86>Jul 17 19:38:44 usermod[31]: add 'postfix' to group 'opendmarc'<86>Jul 17 19:38:44 usermod[31]: add 'postfix' to shadow group 'opendmarc'Done.
<22>Jul 17 19:38:44 opendmarc[39]: OpenDMARC Filter v1.4.2 starting (args: -c /etc/opendmarc.conf)<22>Jul 17 19:38:44 opendmarc[39]: additional trusted authentication services: (none)postfix: Postfix is using backwards-compatible default settings
Jul 17 19:38:44 ubuntu-mail-receiver postfix[49]: Postfix is using backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
Jul 17 19:38:44 ubuntu-mail-receiver postfix[49]: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"
Jul 17 19:38:44 ubuntu-mail-receiver postfix[49]: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"
Starting Postfix
Jul 17 19:38:44 ubuntu-mail-receiver postfix/master[1]: daemon started -- version 3.7.11, configuration /etc/postfix
Jul 17 19:39:12 ubuntu-mail-receiver postfix/smtpd[171]: connect from smtp3.nottingham.ac.uk[128.243.44.55]
Jul 17 19:39:12 ubuntu-mail-receiver postfix/smtpd[171]: NOQUEUE: reject: RCPT from smtp3.nottingham.ac.uk[128.243.44.55]: 554 5.7.1 <person.self@discourse.DOMAINNAME.com>: Recipient address rejected: Mail to this address is not accepted. Check the address and try to send again?; from=<person@nottingham.ac.uk> to=<person.xytz@discourse.DOMAINNAME.com> proto=ESMTP helo=<smtp3.nottingham.ac.uk>
Jul 17 19:39:12 ubuntu-mail-receiver postfix/smtpd[171]: using backwards-compatible default setting smtpd_relay_before_recipient_restrictions=no to reject recipient "person.xytz@discourse.DOMAINNAME.com" from client "smtp3.nottingham.ac.uk[128.243.44.55]"
Jul 17 19:39:12 ubuntu-mail-receiver postfix/smtpd[171]: disconnect from smtp3.nottingham.ac.uk[128.243.44.55] ehlo=1 mail=1 rcpt=0/1 bdat=0/1 quit=1 commands=3/5
У меня есть собственные входящие адреса электронной почты для многих категорий. Нужно ли изменить формат на category+<tag>@discourse.DOMAINNAME.com (для прямой публикации в категорию)?