ステージングユーザーのメールを無効にする方法

Description of various user states in Discourse (Admin / Moderator / Staff / Developer / Other ) の議論を続けます:

私は Google グループのインポートを含むフォーラムを持っています。事情により、これは Google グループの静的アーカイブになる予定です。Google グループはスタンドアロンとして機能し続け、フォーラムは単にその投稿を静的なアーカイブデータとして含めることになります。現在は定期的に Google インポートスクリプトを実行していますが、まもなく受信メールを設定し、カテゴリを Google グループのリストに登録するように切り替える予定です。

enabled staged users を無効にしました。ユーザーはすべて active=false かつ staged=true として表示されます。

誰かが投稿に返信すると、その人にメールが届きます。

誰かがその人に PM を送ると、その人にメールが届きます。

ユーザーの staged ステータスを false に変更すると、PM は届か不再になりますが、返信に関する通知は引き続き届きます。これは適切な動作であり、ちょうど今日別の方が質問されていた内容と一致しますが、この団体は、フォーラムにアカウントを作成していない Google グループのユーザーにメールを送る権限がないと考えています。

もしかすると、インポートスクリプトを変更するか、プラグインを作成して、active=false のユーザーを自動的に staged=false に設定するといった処理を行うことができるかもしれません。あるいは、プラグインを使ってアーカイブカテゴリを監視不可にする設定を行うこともできるでしょうか?

参考までに、staged ユーザーがどのように扱われるべきかを示します:

「いいね!」 2

How to disable mail for staged users? の議論を続けます。

ステージングユーザーにメールが届かないようにする方法が見つからなかったので、私は以下のようにします。

def no_mail_for_staged_users
  staged=User.where(staged: true)
  staged.all.each do |user|
    o=UserOption.find_by(user_id: user.id)
    o.email_level = 2
    o.email_messages_level = 2
    o.email_digests = false
    o.save
  end
end

そして、mbox スクリプトも同様に、作成されたステージングユーザーのメールを無効化するよう修正します。

より良いアイデアをお持ちの方がいれば、ぜひ聞かせてください。

最新バージョンをお使いですか?ステージングユーザーにメールが送信されるバグがあり、ここ1〜2週間で修正しました。

「いいね!」 2

それは良いですね。月曜日に確認して、ユーザーオプションの変更を元に戻す方法を検討します。

「いいね!」 1

これのプラグインはありますか?

これは非常に古いトピックであり、私がこれを書いたときにやっていたことはもはや不可能です。

ユーザーをインポートしていたスクリプトに関数を追加したようです。もし何らかの理由でそれが望ましいのであれば、おそらくプラグインが必要になるでしょう。メールを受信したくないステージングされたユーザーを作成している状況を説明してください。おそらく、それを行っているものを、私が含めたようなスクリプトを実行するように更新する必要があるでしょう。カスタムプラグインが必要な場合は、Marketplace に投稿するか、直接連絡してください。

「いいね!」 1