Как установить настройки уведомлений по электронной почте для всех пользователей на «нет»?

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

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

Я уже отключил дайджест писем и установил настройку, по которой все категории по умолчанию находятся в режиме «отключить уведомления».

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

Что я могу сделать, чтобы гарантировать отсутствие отправки писем? Достаточно ли этого?

Спасибо за помощь в понимании этого вопроса!

Вы хотите деактивировать всех пользователей. Они могут реактивировать свои аккаунты, сбросив пароль. Вы должны найти пример команды Rails для этого, поискав здесь или посмотрев некоторые скрипты импорта.

Спасибо за подсказку о необходимости их деактивации. Я нашёл скрипт, который вы написали в другой теме. Это должно сработать, верно?

cd /var/discourse
./launcher enter app
rails c
User.where(“last_seen_at < ‘2016-01-01’”).update_all(active: false)
exit
exit

Похоже, всё верно! Возможно, стоит отключить всех пользователей и позволить нескольким из них сбросить пароли, чтобы убедиться, что письма не отправляются не тем людям, и посмотреть, как работает этот процесс.

Да, сделаю. По сути, всем нужно сбросить пароль, так как я не импортировал пароли.

Как мне активировать всех, когда переезд завершён?
Заменить active:false на active:true?

Им потребуется использовать функцию «Забыли пароль», чтобы войти в систему.

Ладно, им всё равно нужно это сделать :slight_smile:

Спасибо за помощь и быстрые ответы!

Обновление: большое спасибо! Только что запустил.

Сначала проверил в админ-панели, какие пользователи будут затронуты. Мне нужно было оставить активным только себя. Последний вход был примерно 50 дней назад (хотя я был активен в последние дни), так что 50 дней стали точкой отсечения.

Поскольку я ленивый и не хотел много считать, я установил дату 2020-01-01 и запустил скрипт.

И вуаля: 25 400 пользователей переведены из статуса «активные» в «неактивные».

Также: скрипт исключает discobot и системного пользователя — они остаются активными. (Это логично, и я рад, что так и запрограммировано :))