ダイジェストメールが全ユーザーに送信されません – デバッグのヘルプが必要です

皆さん、こんにちは。

大規模なDiscourseフォーラムで、ダイジェストメール(アクティビティ概要メール)が対象となるすべてのユーザーに期待通りに配信されていない問題が発生しています。

問題の詳細:

  • ダイジェストメールは非アクティブなユーザーにのみ送信されると理解していますが、設定に基づくと、多くの受信者がいるはずです。
  • 最後に確認されたのが180日以内のユーザーでも、ダイジェストメールを受信していません。
  • Admin > Emails > Skipped のログに明確なエラーはありませんが、メールは配信されていません。

確認済みの設定と構成:

  1. ユーザーアクティビティに基づく送信:
  • 最近訪問したユーザーはダイジェストを受信しないはずですが、30日以上訪問していない多くのユーザーがまだ受信していないことを確認しました。
  1. suppress_digest_email_after_days:
  • 180日(デフォルト)に設定されています。しかし、180日未満非アクティブなユーザーもまだダイジェストを受信していません。
  1. default_email_digest_frequency:
  • 最初は**週次(10080分)**に設定されていました。
  • **日次(1440分)**に変更しましたが、それでもメールは送信されていません。
  1. メールログと配信確認:
  • Admin > Emails > Sent/Skipped ログでは、ダイジェストの試行とスキップが示されていません。
  • ユーザー側のメール設定でダイジェストがブロックされているわけではありません(テストアカウントで確認済み)。
  1. サーバーとメールプロバイダー:
  • 大規模送信に対応した高トラフィックのメールプロバイダーを使用しています。
  • レート制限や配信性の問題の兆候はありません。
  • その他の種類のメール(通知、パスワードリセットなど)は正常に配信されています。

質問:

  • 非アクティブ基準を満たすすべてのユーザーに対して、ダイジェストメールの送信を強制する方法はありますか?
  • すべての設定が正しく見えるにもかかわらず、ダイジェストが送信されない根本的な原因は何でしょうか?
  • 大規模フォーラムでダイジェストのスケジュール設定や送信に影響を与える可能性のある既知の制限はありますか?
  • ダイジェストが定期的にユーザーに届くようにするために、他の設定を調整することは役立ちますか?

ご指導やトラブルシューティングの提案をいただけると幸いです。よろしくお願いします!

「いいね!」 3

これをテストするために、ダイジェストの頻度を30分に設定し、新しい投稿が作成されたことを確認しましたが、それでも対象ユーザーにはダイジェストメールが送信されませんでした。

「いいね!」 2

@emonunix さんをサポートしています。このプロセスに関連して30分ごとに実行されているSidekiqジョブがあるようです。このジョブのトラブルシューティング方法がわからないため、問題なく実行されているように見えます。現在の状況は以下の通りです。

他に失敗を確認すべき場所はありますか?

「いいね!」 3

異なる設定を試して、なぜダイジェストメールが期待通りに送信されないのかを理解しようとしています。テストのためにダイジェストの頻度を30分に設定しようとしましたが、設定が保存されず、数分後にエラーが表示されました。

フォーラムの規模が大きいため、こうした変更を大規模に処理する方法に関連している可能性があると疑っています。ただし、エラーログが生成されていないため、トラブルシューティングが難しくなっています。

設定が保存に失敗する理由や、より詳細な情報をキャプチャするためにログを強制的に出力する方法について何か知見があれば、教えていただけると幸いです。

「いいね!」 3

コンソールでエラーが発生しています。

コンソールでのエラー:

  1. 502 Bad Gateway
  • URL: /admin/site_settings/default_email_digest_frequency
  • リソースの読み込みに失敗しました: サーバーが 502 のステータスを返しました。
  1. 429 Too Many Requests
  • URL: /message-bus/9787a3d46f4640699f8b3bd12d33a6c8/poll
  • コンソールエラー: POST /message-bus/... 429 (Too Many Requests)

原因がよくわかりません。何か洞察があれば幸いです!

「いいね!」 3

さらに詳細を追加します。このガイドを何度も確認しました。

しかし、私たちの問題の解決策は提供されていません。

ダイジェストが送信されない理由を確認するための次の手順を誰か教えてくれませんか?システムが実行しているプロセスや確認方法はありますか…

  • 対象となる購読者の検索?
  • リストの取得?
  • リストをメモリに入れる?
  • 生成などに移動?
「いいね!」 2

簡単な質問ですが、この設定をすべてのユーザーに対して遡及的に変更しましたか? 私が知る限り、アカウント作成時に設定されたものは、デフォルトを変更しても変更されないためです。

ご自身のプロフィールを確認し、期待通りの値になっているか確認してください。

「いいね!」 3

はい、自分のプロフィールやいくつかのランダムなユーザーのプロフィールを確認したときに、設定がそこに反映されているのを見つけました。

「いいね!」 1

@Basさん、ありがとうございます。30に更新し、遡って適用することも可能です。この変更を行うと、ユーザーレコードが更新されていることを確認するメッセージがシステムに表示されます。

また、エラーはダイジェストメールが送信されていないこととは関係ないと思います。なぜなら、正しい設定をしているユーザーにも届いていないことを確認済みだからです。

他に何か考えがあれば教えてください!

「いいね!」 2

アカウントの一部を確認し、カテゴリやタグがミュートされていないか確認しましたか?ミュートされている場合、ダイジェストにはトピックが含まれないと思われます。

それ以外の場合は、チームが最良のリソースになるでしょう。

もう1つ、メールサーバーについてですが、ドメインにDKIM DNSレコードを追加しましたか?すべてのSMTPプロバイダーで必要かどうかはわかりませんが、メールがスパムとしてマークされたりブロックされたりするのを防ぐのに役立つ可能性があります。ユーザーにスパムを確認するように依頼しましたか?

「いいね!」 2

@Heliosurge、明確にしていただきありがとうございます。メールはまったく送信されていません。そのため、メールが見られているか、ブロックされているか、迷惑メールに配信されているかという問題ではありません。Discourse がそもそも処理していません。以下は、ここ数日のアクティビティのスクリーンショットです。

設定と構成に基づいて、これは 1 日あたり約 90 件のダイジェストになるはずです。

[スクリーンショットはユーザーのメールアドレスが含まれているため編集されました]

したがって、私たちがわかる限り、メールはそもそもキューに入れられていません。ジョブが実行されていないか、失敗しているかのようです。あるいはその両方です。

「いいね!」 2

また、タグやカテゴリにおけるメンバーの好みをチェックするコンポーネントもあります。ミュートしているものがある可能性があります。

チームメンバーがメールの購読解除リンクを使用したときに、ユーザー設定で目に見える変化があるかどうかを答えるのが良いでしょう。

正直なところ、この問題はiddmだと思います。しかし、何らかのバグがあるかもしれません。

あなたが共有したすべては、私の意見では期待どおりに動作するはずです。

「いいね!」 2

@Heliosurge ご質問への返信が遅くなり申し訳ありません。確かに、ダイジェストの受信を拒否する設定になっているユーザーが少数いる可能性はあります。サイトにはデモユーザーが多数おり、私たちはその設定を管理しており、配信されるはずであることを(我々はそう思っていますが)確認しています。したがって、80人全員がダイジェストを受け取らないように設定を変更したとは思いません。

奇妙な点として、今日サイトを訪れた際、「最終訪問」の行が9日前となっており、毎日アクセスしているのに正確ではありませんでした。このロジックは、Discourseがダイジェストを送信する日付として考慮しているものと関連している可能性はありますか?私には全く分かりませんが、奇妙だと思っただけで、現時点では次のステップのために藁にもすがる思いです…

「いいね!」 2

これに関連している可能性があります。他のユーザーにも確認してもらい、正確かどうかをnoticedしてもらいましょう。

サイトの最終訪問を確認していますか?あなたの画像は、トピックでの最後の活動/投稿だと思います。

「いいね!」 1

@Heliosurge さん、ありがとうございます。
@Jacob_Peebles さんは頻繁にサイトを訪れているため、____ last visit ____ の行より上には、5〜10分前や1〜2時間前のような最新の投稿のみが表示されるはずです。

Discourse が 8〜9 日前の投稿を最終訪問より上に表示する理由がわかりませんでした。
自分のアカウントから確認したところ、この問題には遭遇しませんでした。

「いいね!」 1

ここからの状況はあまりよくわかりません。管理者としては、問題に気付くのが遅れることもよくあります。

最後の訪問情報はあなたの方が正しそうだと言いましたが、@Jacob_Peebles の最後の訪問は正しく更新されていませんか?

他にも同様の問題を抱えているユーザーがどれだけいるのか気になります。

Jacob はあなたのアカウントでダイジェストメールを受け取っていますか? 今のところ、頻繁にオンラインになっているため、ダイジェストメールが送信される時間枠にいない可能性もあります。ただし、30分、1時間、毎日、毎週の設定については言及されていませんので、その設定はないのかもしれません。

確かに、これがイライラする原因になる可能性があることは理解できます。必要なメールだけを送るようにすることで、送信されるメールの負荷を軽減する手助けになるかもしれません。

「いいね!」 1

@Heliosurge いいえ、ダイジェストは受け取っていませんが、過去3日間、単一のユーザーもダイジェストを受け取っていません。

はい、非常にイライラします。間違いありません。私たちが確認できる限り、システムエラーはなく、sidekiqにも何も表示されず、ログにも何も表示されないため、これは誰にでも起こり得ることです…そして、メールが期待どおりに送信されていないことに誰も気づかないでしょう…恐ろしいです。

このサイトの設定に関連している可能性があります。

この設定により、私が正しく理解していれば、ログアウトしていないメンバーは最大60日間ログイン状態を維持できます。

2時間に変更してみてはどうでしょうか? なぜこの設定が60日に設定されているのかは不明です。設定の説明が正確ではない可能性もあります。

ログインが頻繁に発生するため、非常に面倒です。確か365日使用しています。そのような既知の問題はありません。

「いいね!」 2

セッションの有効期間は、常に再ログインする必要がないようにするだけで、私の知る限り、メールの要約とは関係ありません。

「いいね!」 3