お問い合わせフォーム

: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@example.com」です。)

カテゴリに送信

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

ただし、連絡情報の場合はカテゴリへの送信は推奨されません! 万が一、カテゴリのアクセス権限が変更された場合、本来アクセスすべきではない人(または検索エンジン)に個人情報が公開される可能性があります。連絡がグループメッセージに送信される場合、この可能性ははるかに低くなります。

連絡フォームの追加を制限するユーザー

連絡フォームがあちこちに表示されるのは奇妙な場合があるため、contact タグを使用できるユーザーを制限したい場合があります。これを行うには、新しいタググループを作成します。

  1. /tags ページから、右上隅のレンチを選択します。
  2. 「Manage Tag Groups」を選択し、「 :heavy_plus_sign: New Group」を選択します。
  3. 適切な名前(例:「Staff only」)を入力し、contact タグを追加して、「Tags are visible to everyone, but only the following groups can use them」を選択します。
  4. 連絡フォームの追加を許可するグループ(通常は「staff」または「admins」)を選択し、タググループを保存します。

CHANGELOG

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

TODO

  • 変更を加えたときに何も壊れないことを確認するためのテストを設定したいです。特に、アカウントを持たないユーザーがデータを送信できることを確認したいです。
  • テスト中に重大なデータ漏洩を発見しました。その特定の脆弱性は削除しましたが、テストの助けが本当に必要です。
  • フォームは検証を行いません。唯一の実際の要件は、メールフィールドがメールのように見えることです。誰かが応答にメールを追加せずに送信した場合、フォームは静かに失敗します。
  • スパムや悪用に対する保護はありません。
  • コードは、古い規約を使用した例に基づいた、非常に 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