Recommended SMTP provider

Всё заработало, хоть и не так, как я изначально планировал. Возможно, я что-то неправильно понял. Если коротко: Mailjet сработал с первой попытки. Спасибо за помощь и/или за отличный форум с решениями.

Итог

ПОЛНАЯ ВЕРСИЯ

Как я пытался заставить это работать (чтобы вы увидели, как человек с очень малым запасом памяти Linux решает подобные задачи). Так что включил все скучные шаги… что привело к нескольким подсказкам для разработчиков и возможной ошибке.

Сделал снимок (snapshot) на Digital Ocean (раньше у меня был негативный опыт с обновлениями Discourse :smiley: — в этот раз обновление до последней версии прошло как по маске, поскольку у меня теперь 50 ГБ вместо 30 ГБ, в любом случае спасибо за это).

Поскольку lfchosting осенью прошлого года перешёл под управление hostpapa, я решил использовать hostpapa, ведь я за него плачу.

Неуместная короткая история о миграции lfchosting на hostpapa. Один из моих статистических сайтов, получающий трафик извне, перестал работать. Поддержка три месяца не могла понять, в чём дело. ВНЕЗАПНО кто-то сказал, что они собираются отключить некоторые возможные правила фаервола — это исправление не сработало… но дало мне подсказку — они установили ModSecurity после миграции, и как только я выкинул эту ерунду, весь мой трафик снова потёк как по маске. Просто говорю: вы мигрируете старых клиентов, внедряете новый фаервол или что-то ещё, у клиента возникают проблемы с трафиком… и никто в поддержке даже не загорается идеей? Ох.

Пытался проверить учётные данные через Outlook, но не смог заставить его работать — хотя это ничего не значит. Сначала пробовал Pegasus Mail, но он сейчас говорит ещё меньше — зато логи читаются лучше :D.

Команда telnet mail.papamail.net 465 хотя бы что-то ответила (не называйте меня идиотом).

Чешу затылок: порт 465 указывает на TLS/SSL, а не на STARTTLS… гммм.

Ааааа, просто попробую изменить app.yml и почитаю логи…

=> Редактирование app.yml => загадка с паролем SMTP
Кавычки нужны или нет? В предыдущем рабочем варианте с Gmail были двойные кавычки, но во многих постах пишут, что их не должно быть. Хм, достаточно ли умный Discourse, чтобы удалять лишние кавычки? Маловероятно, что у кого-то пароль — это “password” :D.
Начинаю задумываться, не удаляет ли Gmail двойные кавычки из пароля по умолчанию, и поэтому раньше всё работало с Gmail?

После пересборки приложения отправка тестового письма не сработала. Почему лог этой операции нельзя показать прямо на странице теста — для меня загадка (подсказка, подсказка :slight_smile: , хотя, может, это риск для безопасности?).

Файл more shared/standalone/log/rails/production.log
Показал либо слишком мало, либо слишком много мусора, чтобы найти нужное (см. подсказку выше).

./discourse-doctor
Не очень полезно.

./discourse-setup
Занимает вечность (немного как launcher rebuild app), wondering what the быстрее всего изменить app.yml и протестировать исходящую почту?

ОШИБКА discourse-setup?: пароль вида gjwha9T78&vv создал в app.yml такую битую строку (!):

DISCOURSE_SMTP_PASSWORD: "gjwha9T78  DISCOURSE_SMTP_PASSWORD:  gjwha9T78&vv"

Похоже, двойные кавычки всё-таки нужны. Но то, что discourse-setup записывает “мусор” в app.yml, если пароль содержит символ &, — это плохо.

Пока ждал nth пересборку приложения… настроил Mailjet на всякий случай…

Ещё одна пересборка с использованием Mailjet, и отправка писем заработала сразу.

Вывод после 2 часов = Mailjet работает. Ура… НО…

Должен быть более быстрый способ проверить отправку почты из Discourse, чем редактирование app.yml + пересборка?

Поскольку я предполагаю, что сделал много вещей долгим и трудным путём, уверен, что кто-то укажет на лучшие способы. Особенно учитывая, что помощь здесь всегда проактивная, а не в стиле “ты глупый новичок” :D.

Теперь я упрямлюсь и хочу заставить работать hostpapa, ведь я за него плачу. Конечно, опубликую здесь, если моя догадка верна, просто сейчас слишком поздно вечером.

Лучшие ресурсы, которые помогли решить проблему:

Полезно (ну, понимание портов 25/465/587):
Troubleshoot email on a new Discourse install

Также полезно, когда вы готовы попробовать любого другого почтового провайдера:
https://github.com/discourse/discourse/blob/main/docs/INSTALL-email.md