| 概要 | contact でタグ付けされたトピックの先頭に連絡先フォームを追加します。フォームを通じて送信された情報は、受信するように設定されたグループまたはカテゴリに送信されます。 |
|
| リポジトリリンク | https://github.com/jericson/discourse-contact-plugin | |
| インストールガイド | Discourse でのプラグインのインストール方法 |
機能
有効にすると、Contact Form プラグインは contact でタグ付けされたトピックの先頭に連絡先フォームを配置します。フォームを通じて送信されたデータは、contact_form_email からメールを受信するように設定されたカテゴリまたはグループに送信されます。[1] 従来の連絡先フォームと同様に、送信するにはサイト上のアカウントを持つ必要はありません。
訪問者が目にするものは以下の通りです:
これは、本文に含めたい任意の指示を含むことができる通常の投稿であることに注意してください。[2] 現在、フィールド名はハードコードされており、実質的なバリデーションは行われていませんが、後述の TODO セクション を参照してください。メッセージが送信されると、設定されたグループのメッセージフィードに表示されます:
メール通知の設定次第では、設定されたグループのメンバーは Discourse からメールを受け取ることもあります:
設定
このプラグインを使用するには、新しいトピックまたはグループメッセージを作成するための受信メールの設定 が必要です。プラグインは実際にメールを送信しないため、メールによる返信の設定 は必須ではありません。このプラグインは API を乗っ取って受信メールをシミュレートします(とはいえ、メールによる返信は便利な機能です!)。
具体的には、このプラグインには以下の設定が必要です:
email_inenable_staged_users
これらが有効になっている場合、contact でタグ付けされたトピックには、topic-above-posts プラグインアウトレットに連絡先フォームが追加されます。
グループに送信
人々はこのフォームを使って個人情報を送信するため、結果をクローズドなグループに送信するのが最も安全な選択肢です。
- 連絡先対応を担当する人のための新しいグループを作成します。(簡単にするために通常「Contact」と呼びますが、既存のグループを含め何でも構いません。)
- 連絡先情報を受け取るメンバーを追加します。
- アクセスオプションのいずれにもチェックを入れないでください。これはクローズドなグループであるべきです。
- 組織の状況に合わせてグループの可視性を変更します。
- 「カスタム受信メールアドレス」を
contact_form_email設定と同じものに設定します。(デフォルトでは「contact@example.com」です。)
…
カテゴリに送信
「カスタム受信メールアドレス」カテゴリ設定を使用することで、カテゴリへの送信も可能です。また、「アカウントを持たない匿名ユーザーからのメールを受け入れる」を有効にすることを忘れないでください。
ただし、連絡先情報の送信にはカテゴリへの送信は推奨されません! 何らかの理由でカテゴリのアクセス権限が変更された場合、個人情報がアクセス権のない人(または検索エンジン)に公開される可能性があります。連絡先をグループメッセージに送信する方が、そのような事態が起きる可能性ははるかに低くなります。
連絡先フォームを追加できる人を制限する
あちこちに連絡先フォームが飛び交うのは奇妙なことになる可能性があるため、contact タグの使用を制限したいかもしれません。そのためには、新しいタググループを作成します:
/tagsページから、右上のレンチアイコンを選択します。- 「タググループの管理」を選択し、次に「
新しいグループ」を選択します。 - 適切な名前(例:「Staff only」)を入力し、
contactタグを追加して、「タグは全員に可視だが、使用できるのは以下のグループのみ」を選択します。 - 連絡先フォームを追加できるようにするグループ(通常は「staff」または「admins」)を選択し、タググループを保存します。
変更履歴
- 2024 年 4 月 25 日:アルファ版リリース。
TODO
- 変更を加えても何も壊れないようにするためのテストを設定したいです。特に、アカウントを持たない人がデータを提出できることを確認したいです。
- テスト中に重大なデータ漏洩を発見しました。その特定の脆弱性は除去しましたが、テストのサポートを強く必要としています。
- フォームにはバリデーションが行われていません。実質的な要件は、メールアドレスフィールドがメールアドレスのように見えることです。メールを入力せずに返信を残された場合、フォームは静かに失敗します。
- スパムや悪用に対する保護はありません。
- コードは outdated な慣習を使用した例に基づいた「my-first-plugin」レベルの品質です。スタイルに関する提案を歓迎します。
- 「contact」でタグ付けされたトピックに関連付けられた連絡先フォームがあるのは気に入っていますが、複雑でおそらく不要です。単純化のために、単に連絡先フォームだけの新しいルートを追加することを検討しています。
- 連絡先データはデータベースに保存されていますが、連絡先の一覧を表示できる管理パネルがあると役立つかもしれません。
- フォームは現在の要件に合わせて固定されていますが、どのフィールドをプロンプトするかについて柔軟性があると便利です。





