双方向メールマン同期の難問

双方向の Mailman 同期に投資しています。このコミュニティでは、Mailman を廃止することは現実的ではないと感じており、Mailman ユーザーは引き続き Mailman のみを利用しつつ、単一のカテゴリに参加している Discourse ユーザーと対話できるようにしたいと考えています。

一時的には、Mailman カテゴリアドレスをリストに購読させ、「カテゴリがメーリングリストをミラーリングする」を有効にした上で、そのカテゴリを監視している Mailman リストアドレスを持つ Discourse ユーザーを追加することで、ほぼ機能するかと考えました。

最大の懸念はメールのループでしたが、最初のテストでは問題なく動作しているように見え、唯一の問題はメーリングリストのメンバーが、Discourse カテゴリを監視している Mailman リストの購読を解除できてしまう点だけだと考えていました。そこで、購読解除リンクを削除するプラグインを作成し、これで万事解決だと考えました。しかし、それは間違いでした。

最大の課題は、Discourse からリストに送信されたメッセージに対して、ユーザーが返信すると、その返信が直接 Discourse に届く点です。その際、そのユーザーがリストを購読している Discourse ユーザーではないため、メッセージが拒否されてしまいます。これを解決する方法があるかどうかはわかりません。もしかすると、そのチェックを行うコードをオーバーライドし、送信者のアドレスが期待されるものとは異なる場合、他のステージングユーザーと同様に扱うようにできるかもしれません。そうすれば、残る問題は「単一のユーザーに返信するつもりが、実際にはリストに送信されてしまう」という点だけになります。

しかし、もう一つの課題は、Mailman ユーザーが Mailman の返信先(先ほど議論した Reply-To アドレスではなく)に返信した場合、そのメールが Mailman を経由して Discourse に届き、Discourse がそれを新しいトピックとして扱ってしまう点です。Mailman と Discourse が件名に [blah] といった文字列を次々と追加していくため、これをどう解決すればよいかわかりません。しかし、単に返信の問題を解決するだけでも「十分」と言えるかもしれません。

他にアイデアはありませんか?

「いいね!」 1