# カテゴリごとのメール件名フォーマッタ？

**URL:** https://meta.discourse.org/t/email-subject-formatter-per-category/177517
**Category:** Support
**Created:** [2021 年 1 月 28 日午前 5:41 UTC](https://meta.discourse.org/t/email-subject-formatter-per-category/177517 "2021-01-28T05:41:35Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![icculus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/icculus/32/120985_2.png) [@icculus](https://meta.discourse.org/u/icculus)
#### Post date: [2021 年 1 月 28 日午前 5:41 UTC](https://meta.discourse.org/t/email-subject-formatter-per-category/177517/1 "2021-01-28T05:41:36Z")

</div>

いいえ、これはおそらく奇妙なリクエストでしょうから、私のジレンマをここで説明します。

私たちは [Discourse インスタンス](https://discourse.libsdl.org/) を運用しており、多くのユーザーがいます。また、20 年にわたるメーリングリストの歴史を持つため、メーリングリストモードのユーザーが多数います。

現在、いくつかのアクティブなカテゴリがありますが、すべてのメーリングリストユーザーが長年 `[SDL]` というスラッグで始まるメールを受け取り、メールフィルターでその文字列に基づいてメールをフォルダに整理しているため、件名フォーマットにカテゴリ名は含めていません。

そのため、私たちのフォーマット文字列は以下のようになっています（`[SDL]` はハードコードされています）…

```
%{optional_re}[SDL]%{optional_pm} %{topic_title}

```

…この形式は 3 年間問題なく機能していました。

しかし、今、リビジョン管理システムへのコミットを記録する古く堅いメーリングリストを、Discourse のカテゴリに移行しようとしています。これは、古く堅いメーリングリストよりも Discourse が提供する多くのメリットを活用するためですが、ここで問題が発生しました。なぜなら、そのメーリングリストは異なるスラッグ（もちろん `[Commits]`）を使用していたからです。

そのため、件名フォーマット文字列に、ハードコードされた `[SDL]` 文字列の代わりに、カテゴリ固有のスラッグとして使用できる何らかの要素が必要です。

既存のカテゴリスラッグ文字列を使用することはできません。なぜなら、ほとんどのカテゴリは同じ文字列を使用する必要があるからです。また、一意である必要がなかったとしても（私はそう推測していますが）、それを変更するとフォーラムへの既存の URL がすべて壊れてしまいます。カテゴリ名も使用できません。なぜなら、ほとんどのカテゴリは単に `[SDL]` である必要があるからです。加えて、それらは一般に長すぎるフレーズです。

これに対して何か良い方法はありますか？もしそれが不可能なら、`%{optional_cat}` と同様に、カテゴリごとの設定に汎用的な文字列を追加し、それをメール件名フォーマット文字列からアクセスできるようにすることはできませんか？例えば、デフォルトで空文字列になる `%{cat_mailsubj}` のようなものです。

ありがとうございます！

追記：どうやら私は 2017 年にも同じ結論に至ったようです：[How to properly alter the database? - #8 by icculus](https://meta.discourse.org/t/how-to-properly-alter-the-database/60659/8) …より良い選択肢はあるでしょうか、それとも再びこのパッチをほこりから取り出すべきでしょうか？

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2021 年 2 月 1 日午後 7:43 UTC](https://meta.discourse.org/t/email-subject-formatter-per-category/177517/2 "2021-02-01T19:43:03Z")

</div>

> [@icculus](#):
>
> 既存のカテゴリスラッグ文字列を使用することはできません。なぜなら、ほとんどのカテゴリで同じ文字列を使用する必要があるからです。また、一意である必要がないとしても（私はそう推測しますが）、それらを変更すると、既存のフォーラムへのすべての URL が壊れてしまいます。カテゴリ名も使用できません。なぜなら、ほとんどの場合単に「[SDL]」である必要があるからです。さらに、それらはいずれにせよ長すぎるフレーズです。

Hmm、これは難しいですね。私たちが検討できるよう、具体的な例をいくつか提供していただけませんか？

---

<div class="post-metadata">

### Author: ![icculus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/icculus/32/120985_2.png) [@icculus](https://meta.discourse.org/u/icculus)
#### Post date: [2021 年 2 月 4 日午後 5:42 UTC](https://meta.discourse.org/t/email-subject-formatter-per-category/177517/3 "2021-02-04T17:42:30Z")

</div>

> [@codinghorror](#):
>
> 具体的な例をいくつか挙げてください。

「Commits」リストはその一例ですが、他にもあります。例えば、Buildbot が何らかのターゲットで失敗するたびに通知されるメーリングリストや、このように自動通知があります。これらは単に気づいていればよい場合もあれば、トピックに特化した少しの議論が必要な場合もあります。これらの通知を老朽化したメーリングリストから Discourse へ移行することで、UI の摩擦や信頼性の問題を「大量に」解消できます。多くのユーザーがほぼ完全にメールクライアントを通じてやり取りを続ける場合でも同様です。

これらについては、Web インターフェースで人々が期待するもの（「SDL Buildbot Failure Notifications」というカテゴリに分類され、クリックして特定のトピックを確認するもの）と、各トピックの件名プレフィックス（「[BUILDBOT-SDL]」など）の違いという、文化的な相違があるだけです。カテゴリ固有の設定にこのための追加文字列を追加する価値は十分にあると思われます。
