Kontaktformular

:information_source: Zusammenfassung Fügt ein Kontaktformular am Anfang jedes Themas mit dem Tag contact hinzu. Übermittelte Informationen werden an die Gruppe oder Kategorie gesendet, die für den Empfang konfiguriert ist.
:hammer_and_wrench: Repository-Link https://github.com/jericson/discourse-contact-plugin
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Funktionen

Wenn das Kontaktformular-Plugin aktiviert ist, wird ein Kontaktformular am Anfang jedes Themas mit dem Tag contact platziert. Über das Formular übermittelte Daten werden an eine Kategorie oder Gruppe gesendet, die für den Empfang von E-Mails von contact_form_email konfiguriert ist.[1] Wie bei herkömmlichen Kontaktformularen ist kein Konto auf der Website erforderlich, um etwas einzureichen.

Hier ist, was ein Besucher sehen könnte:

Beachten Sie, dass dies ein normaler Beitrag ist, der beliebige Anweisungen enthalten kann, die Sie im Textkörper angeben möchten.[2] Derzeit sind die Feldnamen fest codiert und es erfolgt keine wirkliche Validierung. Weitere Informationen finden Sie im TODO-Abschnitt unten. Nach dem Senden der Nachricht wird sie im Nachrichten-Feed der konfigurierten Gruppe angezeigt:

Abhängig von der Konfiguration ihrer E-Mail-Benachrichtigungen können Mitglieder der konfigurierten Gruppe auch eine E-Mail von Discourse erhalten:

Konfiguration

Um dieses Plugin nutzen zu können, müssen Sie eingehende E-Mails konfigurieren, um neue Themen oder Gruppennachrichten zu erstellen. Es ist nicht erforderlich, Antworten per E-Mail einzurichten, da das Plugin keine E-Mails sendet. Es kapert die API, um eingehende E-Mails zu simulieren. (Dennoch ist die Antwort per E-Mail eine nützliche Funktion!)

Insbesondere erfordert dieses Plugin:

  • email_in und
  • enable_staged_users

müssen aktiviert sein.

Sobald aktiviert, wird jedem Thema mit dem Tag contact ein Kontaktformular über den topic-above-posts-Plugin-Outlet hinzugefügt.

An eine Gruppe senden

Da Personen dieses Formular zur Übermittlung ihrer persönlichen Daten verwenden werden, ist das Senden der Ergebnisse an eine geschlossene Gruppe die sicherste Option.

  1. Erstellen Sie eine neue Gruppe für die Personen, die Kontakte bearbeiten werden. (Ich nenne sie normalerweise der Einfachheit halber „Kontakt“, aber es könnte alles sein, einschließlich einer vorhandenen Gruppe.)
  2. Fügen Sie Mitglieder hinzu, die Kontaktinformationen erhalten werden.
  3. Aktivieren Sie keine der Zugriffsoptionen. Dies sollte eine geschlossene Gruppe sein.
  4. Ändern Sie die Sichtbarkeit der Gruppe entsprechend den Gegebenheiten Ihrer Organisation.
  5. Setzen Sie die „Benutzerdefinierte eingehende E-Mail-Adresse“ auf denselben Wert wie die Einstellung contact_form_email. (Standardmäßig ist dies „contact@example.com“.)

An eine Kategorie senden

Das Senden an eine Kategorie ist auch über die Kategorieeinstellung „Benutzerdefinierte eingehende E-Mail-Adresse“ möglich. Stellen Sie sicher, dass auch „E-Mails von anonymen Benutzern ohne Konto akzeptieren“ aktiviert ist.

Das Senden an eine Kategorie wird jedoch nicht für Kontaktinformationen empfohlen! Wenn aus irgendeinem Grund die Zugriffsrechte für die Kategorie geändert werden, könnten persönliche Informationen an Personen (oder Suchmaschinen) weitergegeben werden, die keinen Zugriff haben sollten. Es ist viel unwahrscheinlicher, dass dies geschieht, wenn Kontakte stattdessen an Gruppennachrichten gesendet werden.

Begrenzen, wer Kontaktformulare hinzufügen kann

Es könnte ziemlich seltsam sein, wenn Kontaktformulare überall auftauchen. Daher möchten Sie vielleicht einschränken, wer das Tag contact verwenden kann. Dazu erstellen Sie eine neue Tag-Gruppe:

  1. Wählen Sie auf der Seite /tags das Schraubenschlüsselsymbol in der oberen rechten Ecke.
  2. Wählen Sie „Tag-Gruppen verwalten“ und dann „ :heavy_plus_sign: Neue Gruppe“.
  3. Geben Sie einen geeigneten Namen ein (z. B. „Nur Personal“), fügen Sie das Tag contact hinzu und wählen Sie „Tags sind für alle sichtbar, aber nur die folgenden Gruppen können sie verwenden“.
  4. Wählen Sie die Gruppe aus, der Sie das Hinzufügen eines Kontaktformulars erlauben möchten (normalerweise „Personal“ oder „Admins“) und speichern Sie die Tag-Gruppe.

CHANGELOG

    1. April 2024: Alpha-Version.

TODO

  • Ich möchte Tests einrichten, um sicherzustellen, dass beim Ändern nichts kaputt geht. Ich möchte insbesondere überprüfen, ob Personen ohne Konto ihre Daten übermitteln können.
  • Während der Tests habe ich ein großes Datenleck entdeckt. Ich habe diese spezielle Schwachstelle entfernt, aber ich könnte wirklich Hilfe beim Testen gebrauchen.
  • Das Formular führt keine Validierung durch. Die einzige wirkliche Anforderung ist, dass das E-Mail-Feld wie eine E-Mail aussieht. Wenn jemand eine Antwort ohne E-Mail-Adresse hinterlässt, schlägt das Formular leise fehl.
  • Es gibt keinen Schutz vor Spam oder Missbrauch.
  • Der Code ist im Grunde „my-first-plugin“-Qualität, basierend auf Beispielen, die veraltete Konventionen verwendeten. Vorschläge zum Stil sind willkommen.
  • Mir gefällt die Verknüpfung des Kontaktformulars mit einem Thema, das mit „contact“ getaggt ist, aber es ist umständlich und wahrscheinlich unnötig. Ich erwäge, eine neue Route hinzuzufügen, die nur das Kontaktformular für Einfachheit halber enthält.
  • Die Kontaktdaten werden in der Datenbank gespeichert, aber es wäre hilfreich, ein Admin-Panel zu haben, um eine Liste der Kontakte anzuzeigen.
  • Das Formular ist auf meine aktuellen Anforderungen festgelegt, aber es wäre praktisch, etwas Flexibilität bei den Feldern zu haben, nach denen es fragt.

  1. Diese Einstellung ist standardmäßig auf „contact@example.com“ gesetzt, kann aber so konfiguriert werden, dass echte E-Mails akzeptiert werden. ↩︎

  2. Es ist sogar möglich, auf das Kontaktformular zu antworten, im Guten wie im Schlechten. ↩︎

13 „Gefällt mir“

Das funktioniert nicht. Können Sie @jericson aktualisieren?

Funktioniert für mich.

1 „Gefällt mir“

Es ist kein Thema, sondern ein Plugin. Siehe Install plugins on a self-hosted site.

5 „Gefällt mir“

Ich habe es installiert. Ich habe meine E-Mail zu contact_form_email hinzugefügt, email_in aktiviert, 'everyone' in email in allowed groups hinzugefügt, enable_staged_users. Ich habe das Formular ausprobiert, aber ich erhalte keine E-Mail.

2 „Gefällt mir“

Guter Deal! Es könnte zukünftigen Lesern helfen zu wissen, was es für Sie gelöst hat.

Ich vermute, dass das Plugin nicht als Theme installiert wird :wink:

1 „Gefällt mir“

Können Sie einige Screenshots des Plugins in Aktion posten? Kann das „Kontaktformular“ modifiziert/konfiguriert werden?

1 „Gefällt mir“

Sicher! Siehe den bearbeiteten Beitrag.

Leider nein. Aber PRs sind willkommen!

1 „Gefällt mir“

Ziemlich cooles Plugin. Die gefälschte E-Mail-Adresse wird dem Endbenutzer nicht angezeigt, nehme ich an.

Korrekt. Ich habe ein weiteres Plugin (noch grober als dieses) zum Einholen anonymer Bewertungen. Ich verwende review@example.com, um diese Nachrichten an das richtige Ziel zu leiten. Es ist nur ein String.

1 „Gefällt mir“