Всё заработало, хоть и не так, как я изначально планировал. Возможно, я что-то неправильно понял. Если коротко: Mailjet сработал с первой попытки. Спасибо за помощь и/или за отличный форум с решениями.
Итог
ПОЛНАЯ ВЕРСИЯ
Как я пытался заставить это работать (чтобы вы увидели, как человек с очень малым запасом памяти Linux решает подобные задачи). Так что включил все скучные шаги… что привело к нескольким подсказкам для разработчиков и возможной ошибке.
Сделал снимок (snapshot) на Digital Ocean (раньше у меня был негативный опыт с обновлениями Discourse
— в этот раз обновление до последней версии прошло как по маске, поскольку у меня теперь 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?
После пересборки приложения отправка тестового письма не сработала. Почему лог этой операции нельзя показать прямо на странице теста — для меня загадка (подсказка, подсказка
, хотя, может, это риск для безопасности?).
Файл 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