Задача rake для тестов email не должна сообщать об успешной доставке, когда email отключен

Аналогично Email test area should warn if emails are disabled

Это вводит в заблуждение:

$ rake 'emails:test[michael@example.com]'
Testing sending to michael@example.com using mx-out:25.
SMTP server connection successful.
Sending to michael@example.com. . . 
Mail accepted by SMTP server.

If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.

If the message is not delivered it is not a problem with Discourse.

Check the SMTP server logs to see why it failed to deliver the message.

В данном случае письмо не было отправлено, так как SiteSetting.disable_emails == "non-staff".

Мы должны предупредить об этом в задаче rake. Хотим ли мы:

  • добавить логику в Email::Sender#send, которая возвращает значение, указывающее, было ли письмо отправлено (например, sent, skipped, disabled, no_message);
  • или добавить логику в задачу emails:test, которая проверяет только disable_emails?
1 лайк

Кажется, я имел какое-то отношение к части этого кода…

Так что утверждение о том, что письмо было принято, — это ложь?

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

1 лайк

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

2 лайка

Мне не удалось воспроизвести проблему с отправкой сообщения из-за SiteSetting.disable_emails, но я изменил скрипт так, чтобы он сообщал об успехе только в случае возврата EmailLog, а также добавил дополнительное предупреждение для настройки disable_emails.

$ bin/rake 'emails:test[]'
Тестирование отправки на  через localhost:1025, имя пользователя: с аутентификацией .
Успешное подключение к SMTP-серверу.
Отправка на . . .
Письмо не было отправлено.

Причина: поле message.to пустое

### ВНИМАНИЕ
Настройка сайта `disable_emails` в настоящее время установлена в значение non-staff.
Перед дальнейшим устранением неполадок рассмотрите возможность изменить её на 'no'.

и

Отправка на michael@example.com. . .
Письмо принято SMTP-сервером.
Message-ID: dfaf1c88-aab6-474b-b50c-8c500afb6291@localhost

Если вы не получили сообщение, проверьте папку SPAM
[...]

https://github.com/discourse/discourse/pull/13674

3 лайка

Эта тема была автоматически закрыта через 21 час. Новые ответы больше не принимаются.