Я и некоторые наши пользователи испытываем трудности с пониманием разницы между этими двумя вариантами получения уведомлений по электронной почте о новых сообщениях:
По результатам моих тестов, даже при выборе варианта «всегда» уведомления по электронной почте не отправляются, если пользователь находится в сети и просматривает форум — даже если он не заходил в свои сообщения и не открывал выпадающее меню уведомлений.
Вот пример пропущенного уведомления по электронной почте для пользователя, который выбрал получать уведомления «всегда»:
Пользователь просматривал форум, но в течение 10 минут не проверял свои сообщения (мы проводили тесты, чтобы понять логику работы системы).
Таким образом, если вариант «всегда» отменяет отправку уведомлений по электронной почте, когда пользователь работает в Discourse, то в чём тогда разница с вариантом «только когда отсутствует»?
Я понимаю риски, связанные с выбором «всегда», поскольку это может привести к получению слишком большого количества уведомлений по электронной почте. Однако в текущем виде система, похоже, не работает так, как можно было бы ожидать от варианта «всегда». Является ли такое поведение ожидаемым?
Когда опция пользователя «Отправлять мне электронное письмо, когда кто-то пишет мне» установлена в значение «Всегда», электронное письмо не должно отправляться пользователю только в том случае, если он уже прочитал сообщение. В этом случае в логах причина пропуска (Skip Reason) должна быть указана как «Уведомление, касающееся этого электронного письма, уже было прочитано». Это должно происходить только в том случае, если пользователь действительно посетил сообщение на сайте; простое просмотр уведомления в выпадающем меню не должно приводить к пропуску сообщения.
Причина пропуска «Пользователь был замечен недавно» не должна отображаться для получателей личных сообщений, у которых уровень уведомлений установлен в значение «Всегда». Вы уверены, что пропущенное сообщение на вашем скриншоте относится к личному сообщению?
Протестировал с другим сообщением, но на этот раз оно не было прочитано сразу — получатель продолжал просматривать форум (не заходя в сообщения); уведомление по электронной почте было отменено точно так же, как и выше. Судя по моим наблюдениям, оно было отменено почти мгновенно, просто потому, что человек использовал форум. Никакой разницы я не заметил.
Не уверен, правильно ли я понял вопрос. Разве user_private_message на скриншоте не относится только к личным сообщениям?
Не знаю, поможет ли это, но случаи пропуска писем с сообщением «Уведомление, о котором идёт речь в этом письме, уже прочитано» я наблюдаю только для писем user_mentioned, а не для user_private_message (по крайней мере, в нашем списке пропущенных писем).
Могу ли я предоставить какую-либо другую информацию?
Это понятно, я тестирую это на ветке tests-passed.
Да, именно так. На вашем скриншоте это явно личное сообщение. Для пользователя, который выбрал получать уведомления по электронной почте всегда, когда ему кто-то пишет, письмо должно отправляться, если он ещё не прочитал это личное сообщение через интерфейс пользователя Discourse.
У меня нет удобного способа воспроизвести это в среде с tests-passed, поэтому я попросил кого-то написать мне здесь на Meta, и надеюсь, что этого достаточно. Я был на Meta, когда человек отправил сообщение, и продолжал просматривать Meta более 10 минут (не проверяя сообщения): за это время не пришло ни одного уведомления по электронной почте, хотя у меня для личных сообщений установлено значение «всегда». Похоже на то же поведение, которое я описывал для стабильной версии.
Не могли бы вы проверить логи пропущенных писем и посмотреть, что случилось с уведомлением о последнем сообщении здесь?
Может ли мобильное push-уведомление о сообщении отменить уведомление по электронной почте? Я получил его сразу (не через 10 минут), но за этот 10-минутный интервал не открывал его (и не открывал приложение DiscourseHub).
Я не вижу записи об этом сообщении ни в логах пропущенных, ни в логах отправленных писем на Meta. Не знаю, в чём причина, но ответ на ваше сообщение, который мог бы сгенерировать письмо, был таким:
Кстати, я попросил прислать мне ещё одно сообщение. На этот раз более обычного вида.
То же самое поведение. Пока я просто продолжаю просматривать Meta, я не получаю уведомление по электронной почте о сообщении. На данный момент (прошло 15 минут) письмо так и не пришло, и у меня всё ещё есть уведомление о новом сообщении, так как я его ещё не открыл.
Итак, я начну с того, что мы передаём параметр default email messages level со значением «всегда». Это меня немного удивляет, но, возможно, идея в том, что прямые сообщения должны иметь максимальную видимость.
В любом случае, я только что создал тестовый аккаунт здесь, на Meta, и отправил ему личное сообщение. Затем я продолжил просматривать форум под этим тестовым аккаунтом, игнорируя уведомление о новом сообщении.
Через пару минут я проверил логи, и кажется, что отправка пропускается: