お問い合わせフォーム

:information_source: 概要 contact でタグ付けされたトピックの先頭に連絡先フォームを追加します。フォームを通じて送信された情報は、受信するように設定されたグループまたはカテゴリに送信されます。
:hammer_and_wrench: リポジトリリンク https://github.com/jericson/discourse-contact-plugin
:open_book: インストールガイド Discourse でのプラグインのインストール方法

機能

有効にすると、Contact Form プラグインは contact でタグ付けされたトピックの先頭に連絡先フォームを配置します。フォームを通じて送信されたデータは、contact_form_email からメールを受信するように設定されたカテゴリまたはグループに送信されます。[1] 従来の連絡先フォームと同様に、送信するにはサイト上のアカウントを持つ必要はありません。

訪問者が目にするものは以下の通りです:

これは、本文に含めたい任意の指示を含むことができる通常の投稿であることに注意してください。[2] 現在、フィールド名はハードコードされており、実質的なバリデーションは行われていませんが、後述の TODO セクション を参照してください。メッセージが送信されると、設定されたグループのメッセージフィードに表示されます:

メール通知の設定次第では、設定されたグループのメンバーは Discourse からメールを受け取ることもあります:

設定

このプラグインを使用するには、新しいトピックまたはグループメッセージを作成するための受信メールの設定 が必要です。プラグインは実際にメールを送信しないため、メールによる返信の設定 は必須ではありません。このプラグインは API を乗っ取って受信メールをシミュレートします(とはいえ、メールによる返信は便利な機能です!)。

具体的には、このプラグインには以下の設定が必要です:

  • email_in
  • enable_staged_users

これらが有効になっている場合、contact でタグ付けされたトピックには、topic-above-posts プラグインアウトレットに連絡先フォームが追加されます。

グループに送信

人々はこのフォームを使って個人情報を送信するため、結果をクローズドなグループに送信するのが最も安全な選択肢です。

  1. 連絡先対応を担当する人のための新しいグループを作成します。(簡単にするために通常「Contact」と呼びますが、既存のグループを含め何でも構いません。)
  2. 連絡先情報を受け取るメンバーを追加します。
  3. アクセスオプションのいずれにもチェックを入れないでください。これはクローズドなグループであるべきです。
  4. 組織の状況に合わせてグループの可視性を変更します。
  5. 「カスタム受信メールアドレス」を contact_form_email 設定と同じものに設定します。(デフォルトでは「contact@example.com」です。)

カテゴリに送信

「カスタム受信メールアドレス」カテゴリ設定を使用することで、カテゴリへの送信も可能です。また、「アカウントを持たない匿名ユーザーからのメールを受け入れる」を有効にすることを忘れないでください。

ただし、連絡先情報の送信にはカテゴリへの送信は推奨されません! 何らかの理由でカテゴリのアクセス権限が変更された場合、個人情報がアクセス権のない人(または検索エンジン)に公開される可能性があります。連絡先をグループメッセージに送信する方が、そのような事態が起きる可能性ははるかに低くなります。

連絡先フォームを追加できる人を制限する

あちこちに連絡先フォームが飛び交うのは奇妙なことになる可能性があるため、contact タグの使用を制限したいかもしれません。そのためには、新しいタググループを作成します:

  1. /tags ページから、右上のレンチアイコンを選択します。
  2. 「タググループの管理」を選択し、次に「:heavy_plus_sign: 新しいグループ」を選択します。
  3. 適切な名前(例:「Staff only」)を入力し、contact タグを追加して、「タグは全員に可視だが、使用できるのは以下のグループのみ」を選択します。
  4. 連絡先フォームを追加できるようにするグループ(通常は「staff」または「admins」)を選択し、タググループを保存します。

変更履歴

  • 2024 年 4 月 25 日:アルファ版リリース。

TODO

  • 変更を加えても何も壊れないようにするためのテストを設定したいです。特に、アカウントを持たない人がデータを提出できることを確認したいです。
  • テスト中に重大なデータ漏洩を発見しました。その特定の脆弱性は除去しましたが、テストのサポートを強く必要としています。
  • フォームにはバリデーションが行われていません。実質的な要件は、メールアドレスフィールドがメールアドレスのように見えることです。メールを入力せずに返信を残された場合、フォームは静かに失敗します。
  • スパムや悪用に対する保護はありません。
  • コードは outdated な慣習を使用した例に基づいた「my-first-plugin」レベルの品質です。スタイルに関する提案を歓迎します。
  • 「contact」でタグ付けされたトピックに関連付けられた連絡先フォームがあるのは気に入っていますが、複雑でおそらく不要です。単純化のために、単に連絡先フォームだけの新しいルートを追加することを検討しています。
  • 連絡先データはデータベースに保存されていますが、連絡先の一覧を表示できる管理パネルがあると役立つかもしれません。
  • フォームは現在の要件に合わせて固定されていますが、どのフィールドをプロンプトするかについて柔軟性があると便利です。

  1. この設定のデフォルトは「contact@example.com」ですが、実際のメールアドレスを受け付けるように設定できます。 ↩︎

  2. 連絡先フォームへの返信も可能ですが、良い結果も悪い結果も生じ得ます。 ↩︎

「いいね!」 13

これは機能しません。@jericson を更新してもらえますか

私には機能しています。

「いいね!」 1

それはテーマではなく、プラグインです。Install plugins on a self-hosted site を参照してください。

「いいね!」 5

インストールしました。contact_form_emailにメールアドレスを追加し、email_inを有効にし、allowed groupsに'everyone'を追加し、enable_staged_usersを有効にしました。フォームを試しましたが、メールが届きません。

「いいね!」 2

素晴らしい!将来の読者のために、何が解決したのかを知っておくと役立つかもしれません。

プラグインをテーマとしてインストールしていないということでしょうか?:wink:

「いいね!」 1

プラグインが動作している様子をいくつかスクリーンショットで投稿してもらえますか?「お問い合わせフォーム」は変更・設定できますか?

「いいね!」 1

はい、承知いたしました!編集済みの投稿をご覧ください。

残念ながらできません。しかし、プルリクエストは歓迎します

「いいね!」 1

かなりクールなプラグインです。なりすまされたメールアドレスはエンドユーザーには表示されないと推測します。

正しいです。匿名レビューを取得するための別のプラグイン(こちらの方がさらに粗削りです)があります。これらのメッセージを適切な宛先にルーティングするためにreview@example.comを使用しています。単なる文字列です。

「いいね!」 1

最近、Discourse の最新バージョンで動作しなくなったため、プラグインを更新しました。

「いいね!」 4