Протестируйте настройку электронной почты перед началом установки

Инструмент discourse-doctor может отправлять тестовое письмо. Это также следует добавить в инструмент discourse-setup. Проведите быструю проверку отправки письма, чтобы убедиться, что введенные пользователем данные SMTP работают, ПЕРЕД настройкой всего программного стека. Как указано в примечаниях, система будет неработоспособна, если электронная почта настроена неправильно.

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

Хм. Похоже, что возможно провести лишь полу-тупой тест SMTP, например так:

echo Hello world > /tmp/mail.txt
curl -v  smtp://$DISCOURSE_SMTP_ADDRESS:$DISCOURSE_SMTP_PORT  \
  --mail-from noreply@$DISCOURSE_HOSTNAME \
  --mail-rcpt $(echo $DISCOURSE_DEVELOPER_EMAILS | cut -d ',' -f 1) \
  --user $DISCOURSE_SMTP_USER_NAME:"$DISCOURSE_SMTP_PASSWORD" \
  --upload-file /tmp/mail.txt 

Так что, вероятно, такой тест можно провести. Меня беспокоит, что он может давать много ложноположительных и ложноотрицательных результатов, но, возможно, вывод предупреждения в случае сбоя поможет некоторым пользователям.

Возможно, лучшей идеей будет создание ещё одного скрипта (например, discourse-mail-check?), который бы выполнял подобный быстрый и простой тест, если у вас возникли проблемы.

Я надеялся, что тест будет запущен сразу после того, как пользователь введёт данные SMTP. Он должен отправить тестовое письмо на указанный пользователем адрес, а затем спросить, получил ли пользователь это письмо. Если да, установка продолжается. Если нет, пользователь может повторить тест или изменить конфигурацию SMTP и попробовать снова.

2 лайка

Как описано в моём посте здесь Install Discourse on Amazon Web Services (AWS) with Lightsail, SES, and Route 53 - #4 by wal, мне удалось отправить тестовые письма перед запуском полного скрипта discourse-setup, используя этот метод, описанный здесь с помощью telnet: https://serverfault.com/questions/49935/easiest-way-to-send-a-test-email-from-a-server-to-test-settings

В частности, я использовал порт 587 вместо порта 25, показанного там, и вам обязательно нужно закодировать ваше имя пользователя и пароль SMTP в base64.

Также в том посте приведена ссылка на скрипт, предоставляемый AWS, который показывает, как сделать то же самое с помощью команды openssl (ссылка здесь: Creating configuration sets in SES - Amazon Simple Email Service).

Если вы не используете AWS SES в качестве почтового сервера, возможно, вам придётся немного адаптировать скрипт, но в целом я думаю, что один или оба этих метода помогут вам проверить работу почты до установки (именно это я и сделал).

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

1 лайк