メールに関する動作の変更

最新のアップデートの後、突然Discourseがすべてのメールの前に「“Someone replied to a topic you are Watching.”」を付けて送信するようになりました。すべてのユーザーからひどい苦情が寄せられており、誰もメール設定を変更していません。

皆、非常に迷惑だと言っています。

それで、何が起こったのか、そしてこれをオフにして通常のプレーンな動作に戻すにはどうすればよいですか?これはうまく実装されていないと思いますし、開発者は不要な大文字のWでwatchingが綴られていることさえ確認しなかったと思います。

Andrewのコミュニティメンバーにとって煩わしい原因は、%{header_instructions}にあると思われます。

このトークンは、かなり大きな定型文(「返信しないでください…」、リンク、指示など)に展開され、多くの通知テンプレートのメール本文の先頭に表示されます。経験豊富なユーザーにとっては、役に立つというよりは、おせっかいのように感じられ、メッセージの大部分を占めてしまいます。

現在、これを無効にしたり移動したりするためのサイト全体の(グローバルな)設定はありません。これを削除するには、管理者が「管理」→「メール」→「テンプレート」の下で、すべてのメールテンプレートを個別に編集する必要があります。

現在のlatest-release(私はlatest-release +17を使用しています)では、DBオーバーライドが既にあるテンプレートに対しては、Railsスクリプトを使用して一元的に対応できるはずです。例えば、本文の先頭に%{header_instructions}が表示されている場合にそれを削除するなどです。この部分は簡単で、EmailTemplateモデルを使用します。

既存のオーバーライドがないものも含め、すべての標準テンプレートに同じ変更を適用するには、内部ルックアップAPIを介してデフォルトのテンプレート本文を読み込み、オーバーライドを作成する必要があります。これは実行可能ですが、Discourseの内部構造に依存するため、広く推奨される前にメンテナーによるレビューと検証が必要になります。

したがって、根本的な問題は%{header_instructions}の内容だけでなく、それが管理レベルの切り替えなしに実質的にグローバルな定型文となっており、それを削除または移動するには、テンプレートごとの手動作業か、サポートされていないスクリプトが必要になるという点です。

@Ethsim2 ありがとうございます、それは本当に素晴らしいです。しかし、なぜこれが突然変更されたのでしょうか?私は変更履歴を読むことや見つけることの専門家ではありません。

@Andro はい、まったくもっともな質問です。

「突然」というのは、%{header_instructions} がローカルで変更したものではなく、Discourse が多くの通知メールに挿入するコア提供のブロックだからです。コアがその文言を変更したり、いつそれが含まれるかを変更したりすると、管理者の設定に触れなくても、誰もがすぐに気づくことになります。

特定のコミット参照なしに過剰に主張したくはありませんが、最も可能性の高い原因は、監視中のトピックの通知に対して %{header_instructions} が展開するデフォルトのテキストに対する最近のコアの変更(例えば、「誰かがあなたが監視しているトピックに返信しました。」という行の追加など)、またはそのブロックがメール本文に含まれるタイミングの変更です。

どこから来ているかを確認する方法:

  • 管理 → メール → メール設定 → テンプレート で、ユーザーが受け取る通知テンプレート(監視中 / トラッキング中 / 返信 / メンション)を確認します。
  • 本文が %{header_instructions} で始まっている場合、それが新しい前置きテキストのソースです。
  • それを削除するか、%{message} / %{context}(あるいは %{reply_instructions})の下に移動すると、以前の「プレーン」な動作に戻ります。

残念ながら、現在サイト全体でこれを切り替えるトグルはありません。影響を受ける各テンプレートを個別に調整する必要があるため、コアの動作が変更されたときに、これが唐突で制御しにくいように感じられます。

ホストされている Discourse をご利用の場合は、すべてのテンプレートを調整するのではなく、ユーザーが実際に受け取る少数のテンプレートを編集するという実用的な回避策があります。

これらのプレビューは数日前に追加されました

「いいね!」 3

%{email_preview} をテンプレートから削除するだけで、これが解決するということですか?

「いいね!」 1

Watching という単語は、特定の Discourse 機能を参照する場合、大文字で表記されることがよくあります。

私は常に興味深いトピックが表示されないか見ていますが、新しい返信がないか特定のトピックを Watching しています。

「いいね!」 2

そして、トピック通知ステータスドロップダウンに示されているように、トラッキングなどが含まれます。

正直なところ、それは思いつかなかったでしょう。理解はできますが、ある意味では少し珍しいですね。

「いいね!」 1

ありがとうございます、それは理にかなっています。

この場合、Androが見ている急な変更は、最近追加された%{email_preview}(PR #36657)によるものであり、管理者の変更なしにそれが一晩で現れた理由を説明しています。

管理者側の観点からすると、どちらの場合も問題点は似ています。それは、メール本文の先頭にコアから注入されたコンテンツであり、それを無効にしたり再配置したりするためのサイト全体のトグルが現在ありません。今日の唯一の回避策は、影響を受けるメールテンプレートを編集し、%{email_preview}%{header_instructions}と同様に)を削除または移動することです。

特にホストされているお客様にとって、これが唐突に感じられるのは、デフォルトが変更されたにもかかわらず、サポートされているグローバルな制御がないためです。