Уведомления по электронной почте для чата не отправляются в соответствии с настройками пользователя

Существует ли способ принудительно обновить настройки всех пользователей в канале чата так, чтобы они получали уведомления о чате по электронной почте?

Я хочу, чтобы пользователи по умолчанию получали электронные письма.

Спасибо.

Зачем вы так делаете? Surely предпочтения пользователя — это то, что он хочет. Когда я регистрируюсь в новом экземпляре Discourse, первое, что я делаю, — перехожу в свой профиль и меняю настройки уведомлений по электронной почте на «Никогда». Я был бы в ярости, узнав, что кто-то решил, будто знает лучше меня, как я хочу взаимодействовать с Discourse. Действительно, если бы администратор сделал это со мной, я бы счёл это спамом!

3 лайка

Да, это не для переопределения того, что выбирает пользователь.

Однако было бы логично установить начальные значения по умолчанию. Похоже, что в настоящее время при включении функции чата рассылка писем не осуществляется.

В нашем типе форума пользователи не будут заходить в настройки предпочтений и ожидать адекватного уведомления.

1 лайк

Я только что проверил свой тестовый сайт и считаю, что настройка по умолчанию для уведомлений о чате по электронной почте — «только когда вдали» (единственная альтернатива — «никогда»).

Думаю, есть смысл добавить возможность настройки значения по умолчанию в административных настройках предпочтений пользователя, хотя, вероятно, для противоположного того, что вы предлагаете. :slightly_smiling_face: Это будет работать аналогично другим настройкам по умолчанию: изменение затронет только тех пользователей, которые ещё не выбрали вариант вручную.

Я передал этот вопрос в ux для рассмотрения. :+1:

4 лайка

Спасибо. Но разве по умолчанию настройка «Только при отсутствии» не должна рассылать сообщения всем, кто давно не заходил на сайт?

У меня было более 300 участников в общем чате, и ушло только 2 сообщения.
Излишне говорить, что большинство из этих 300 человек не были на сайте в течение 15-минутного окна.

3 лайка

Вы получаете уведомления не обо всех сообщениях в чате, а только о тех, где вас упомянули (включая ваше собственное упоминание @, @here и @all), так что, возможно, это объясняет ситуацию?

4 лайка

Извините, возможно, я не уточнил: я использовал @ all (пробел добавлен только здесь), но это не сработало.

P.S. Кстати, меня удивляет, что вас не добавили в чат на моём сайте как недавно активного участника. :grinning:

2 лайка

Ах, боюсь, я удалил свой тестовый аккаунт на вашем сайте после завершения тестирования комментариев с голосованием. :slight_smile:

Я быстро проверил, есть ли какие-то особенности в том, когда пользователь чата включается в @all, но (судя по очень краткому осмотру) это, кажется, все пользователи из списка канала. Вы могли бы выбрать пару пользователей, которые не получили письмо, и проверить, получили ли они уведомление, а также их настройки получения писем из чата, чтобы убедиться, что они настроены правильно?

3 лайка

Итак, вот мой тест:

1. Настройки канала чата для уведомлений обо всём (хотя, думаю, это не влияет на электронную почту).

2. Я выбрал участника из 313 в канале, и вот стандартные настройки пользователя — «Только по электронной почте, когда вдали».
Сообщение в чате с @all, созданное много часов назад, отправило уведомления, как видно здесь, но не отправил письма.

3. Письма не отправлялись, за исключением двух участников. Оба являются администраторами/модераторами и оба ранее использовали чат — не уверен, является ли это ключевым отличием.

4. Кроме того, похоже, что администратор не может увидеть настройки чата пользователя.

2 лайка

Сегодня утром я немного глубже изучил этот вопрос, и у меня всё работает нормально. :thinking:

У меня есть 6 тестовых пользователей, все автоматически добавлены в канал ~general. Один из них — администратор, а другой — новый пользователь уровня TL0, который никогда не открывал канал чата (и вообще чат). Никто из них не заходил в систему со вчерашнего дня (за исключением нового тестового пользователя test_six, но я убедился, что перед тестированием у него было как минимум 15 минут «простоя»).

Уведомление всем пользователям канала ~general с помощью @all отправило каждому из них уведомление. Через несколько минут всем тестовым адресам электронной почты было отправлено по 6 писем с chat_summary.

Не уверен, что ещё можно проверить. Я немного покопался в коде, но мои навыки расшифровки кода не очень хороши. :slightly_smiling_face: Буду ещё раз обдумывать ситуацию.


Спасибо, что обратили на это внимание. :+1: Я передал эту информацию команде. :slightly_smiling_face:

2 лайка

Спасибо.
Не будучи экспертом в этой области, я полагаю, что users_with_unprocessed_unread_mentions в lib/chat_mailer.rb не извлекает всех пользователей, которым нужно отправить письмо?

Может ли кто-нибудь подтвердить это…

@JammyDodger
Обновил заголовок, чтобы он отражал реальную проблему.
Есть ли другие тесты, которые вы можете предложить?
Стоит ли мне пометить это как баг, или вы видите другие способы воспроизведения?

Похоже, у нас пока нет четкого сценария воспроизведения.

Насколько я понимаю, @JammyDodger пытается воспроизвести эту проблему на основе вашего отчета, но пока безуспешно.

Несколько замечаний:

Уточню: это не настройка всего канала, а пользовательское предпочтение для этого конкретного канала. Но то, что вы показываете, — это значения по умолчанию, поэтому я подозреваю, что большинство из 313 участников настроены именно так.

Вы уверены, что они были вдали? Если они были на сайте, то уведомление не отправит электронное письмо.

Хорошо, это довольно веское доказательство того, что что-то работает не так, как ожидалось. Я бы предположил, что больше двух из 313 человек были бы вдали. Возможно, что все они в тот момент были на сайте?

2 лайка

Спасибо за уточнение. Я на самом деле думал, что это настройки канала, которые может изменить администратор. Честно говоря, «Настройки» звучит очень похоже на панель управления администратора.

Да, можно смело сказать, что большинство из них (если не все) были в статусе «нет на месте» в течение предыдущих 15 минут (хотя бы у нас была такая активность :blush: ). Я выбрал учётную запись не из числа сотрудников, которая была в статусе «нет на месте», и тоже проверил.

1 лайк

Кажется, мне удалось воспроизвести это. :slightly_smiling_face: :raised_hand:

У меня не получилось на существующем тестовом сайте, но я подумал, что, возможно, я уже что-то делал, менял или настраивал ранее, что могло повлиять на это, поэтому создал новый сайт и попробовал на нём.

  • Создал новый сайт
  • Включил чат и добавил everyone в chat_allowed_groups (вместе с staff)
  • Зарегистрировал и вошёл под тремя тестовыми пользователями, автоматически добавил их в канал ~general (и сделал одного администратором). Выйти из всех аккаунтов.
  • Заварил себе чай
  • Как главный администратор, убедился, что они являются участниками канала, и упомянул их через @all

  • Все получили уведомления
  • Только администратор получил письмо об этом

5 лайков

@JammyDodger - Вы изменили значение настройки «Разрешённые группы чата»? Если установлено только «Персонал», это объясняет, почему письмо получил только администратор.

Я включил чат и одновременно добавил everyone. :+1: (извините, я пропустил это в пошаговой инструкции. Сейчас добавлю)

Кажется, я понял, в чём дело, @Roman. :raised_hand: Если я добавлю everyone в chat_allowed_groups, все получат доступ к чату и уведомления, но не будут получать письма с @all. Однако, если я добавлю trust_level_0, то тестовые пользователи без статуса персонала будут получать письма об упоминаниях @all.

6 лайков

Вау, какое расследование! :clap:

Я проверил, и у меня есть сотрудники, всем в чате разрешены группы на моём сайте.

4 лайка

Спасибо @JammyDodger :tada:

Нам нужно обрабатывать случай everyone иначе, так как он отличается от других групп. У меня уже есть готовое исправление:

8 лайков

@alehandrof сообщает, что некоторые пользователи не получают уведомления по электронной почте о сообщениях в групповом чате:

Я пробую чат с конкретными людьми, и люди сообщают: «Я не получил никакого письма, извещающего о том, что кто-то добавил комментарий в чат, даже при правильных настройках уведомлений по электронной почте».

Пользователи утверждают, что их настройки установлены по умолчанию, и они недавно не были активны:

Кроме того, для прямых сообщений в группе настройка «канала» по умолчанию установлена на получение уведомлений «Для всей активности», поэтому уведомления не должны требовать @упоминания.

С другой стороны, Алекс (администратор) получает уведомления по электронной почте напрямую.

Алекс, не могли бы вы подтвердить, какую версию вашего сайта в настоящее время используется?

переписка в чате
Originally sent in chat feedback
alehandrof

Я пробую чат с конкретными людьми, и я не совсем понимаю, как и когда система уведомляет людей по электронной почте.

Кажется, что соответствующая настройка — это вот эта:

Но люди сообщают: «Я не получил никакого письма, извещающего о том, что кто-то добавил комментарий в чат, даже при правильных настройках уведомлений по электронной почте».

Чего я не понимаю?

mcwumbly

@alehandrof, я предполагаю, что недостающий момент заключается в том, что письма отправляются только тем, кто был @упомянут, а не для всех сообщений в каналах, в которых они случайно находятся.

У пользователей также есть настройка для каждого канала, чтобы включить уведомления о всей активности. Может, попробовать это? Я не помню, отправляются ли письма в таком случае или нет.

alehandrof

Но surely, если я отправляю чат группе людей (не каналу), я имею в виду обратиться к этим конкретным людям, верно?

Кроме того, в этой группе из трёх человек я получал уведомления по электронной почте, даже когда меня не @упоминали.

Пример письма, которое, похоже, получил только я:

Почему я его получил, а они нет? (Я администратор, если это имеет значение.)

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

Кстати, я проверил, и по крайней мере один из моих коллег имеет те же настройки, что и я. Так что я всё ещё не понимаю, как чат обрабатывает уведомления по электронной почте.

mcwumbly

О, хороший момент. Я думаю, что в этом случае должно отправляться уведомление по электронной почте, поскольку «Для всей активности» — это уровень уведомлений по умолчанию для прямых сообщений (включая те, где участвуют несколько человек).

Я превращу это в тему, чтобы мы могли разобраться подробнее.