Kontaktformular

In der neuesten Discourse-Version defekt

Ich habe kürzlich Discourse aktualisiert, und dieses Plugin hat die Seite lahmgelegt. (Um es klarzustellen, dies ist wahrscheinlich eher auf meine schrecklichen Hacks zurückzuführen als auf Discourse selbst. Ich habe derzeit nicht die Zeit, die Lösung zu finden, daher hinterlasse ich diese Warnung nur für andere.)

:information_source: Zusammenfassung Fügt oben in jedem Thema mit dem Tag contact ein Kontaktformular hinzu. Die über das Formular übermittelten 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 oben in jedem Thema mit dem Tag contact platziert. Daten, die über das Formular übermittelt werden, werden an eine Kategorie oder Gruppe gesendet, die so konfiguriert ist, dass sie E-Mails von contact_form_email empfängt.[1] Wie bei herkömmlichen Kontaktformularen ist kein Konto auf der Website erforderlich, um eine Nachricht zu senden.

Hier ist, was ein Besucher sehen könnte:

Beachten Sie, dass dies ein regulärer Beitrag ist, der beliebige Anweisungen enthalten kann, die Sie im Text einfügen möchten.[2] Derzeit sind die Feldnamen fest codiert und es wird keine echte Validierung durchgeführt. Weitere Informationen finden Sie jedoch im Abschnitt TODO unten. Nachdem die Nachricht gesendet wurde, wird sie im Nachrichtenfeed der konfigurierten Gruppe angezeigt:

Abhängig davon, wie ihre E-Mail-Benachrichtigungen konfiguriert sind, erhalten Mitglieder der konfigurierten Gruppe möglicherweise auch eine E-Mail von Discourse:

Konfiguration

Um dieses Plugin nutzen zu können, müssen Sie eingehende E-Mails so konfigurieren, dass neue Themen oder Gruppenmeldungen erstellt werden. Es ist nicht erforderlich, Antworten per E-Mail einzurichten, da das Plugin tatsächlich keine E-Mails sendet. Es kapert die API, um eingehende E-Mails zu simulieren. (Allerdings ist die Antwort per E-Mail eine nützliche Funktion!)

Insbesondere erfordert dieses Plugin:

  • email_in und
  • enable_staged_users

aktiviert zu sein.

Sobald sie aktiviert sind, wird jedem Thema mit dem Tag contact ein Kontaktformular zum 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 sich um Kontakte kümmern werden. (Ich nenne sie der Einfachheit halber normalerweise „Kontakt“, aber es könnte jede Gruppe sein, einschließlich einer bestehenden Gruppe.)
  2. Fügen Sie Mitglieder hinzu, die Kontaktinformationen erhalten sollen.
  3. Aktivieren Sie keine der Zugriffsoptionen. Dies sollte eine geschlossene Gruppe sein.
  4. Ändern Sie die Sichtbarkeit der Gruppe nach den Anforderungen Ihrer Organisation.
  5. Stellen Sie die „Benutzerdefinierte eingehende E-Mail-Adresse“ auf denselben Wert wie die Einstellung contact_form_email ein. (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 außerdem sicher, dass „E-Mails von anonymen Benutzern ohne Konten akzeptieren“ aktiviert ist.

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

Einschränken, wer Kontaktformulare hinzufügen kann

Es könnte ziemlich seltsam sein, wenn überall Kontaktformulare auftauchen. Sie möchten also möglicherweise einschränken, wer das Tag contact verwenden kann. Erstellen Sie dazu eine neue Tag-Gruppe:

  1. Wählen Sie auf der Seite /tags das Schraubenschlüssel-Symbol oben rechts aus.
  2. Wählen Sie „Tag-Gruppen verwalten“ und dann „ :heavy_plus_sign: Neue Gruppe“.
  3. Geben Sie einen geeigneten Namen ein (z. B. „Nur Mitarbeiter“), 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 gestatten möchten (normalerweise „Mitarbeiter“ oder „Administratoren“) und speichern Sie die Tag-Gruppe.

ÄNDERUNGSPROTOKOLL

    1. April 2024: Alpha-Version.

ZU ERLEDIGEN

  • Ich möchte Tests einrichten, um sicherzustellen, dass beim Ändern nichts kaputt geht. Ich möchte insbesondere überprüfen, ob Personen ohne Konten ihre Daten übermitteln können.
  • Beim Testen habe ich ein großes Datenleck entdeckt. Ich habe diese spezielle Schwachstelle behoben, aber ich könnte wirklich Hilfe beim Testen gebrauchen.
  • Das Formular führt keine Validierung durch. Die einzig wirkliche Anforderung ist, dass das E-Mail-Feld wie eine E-Mail aussieht. Wenn jemand eine Antwort hinterlässt, ohne eine E-Mail hinzuzufügen, schlägt das Formular stillschweigend fehl.
  • Es gibt keinen Schutz vor Spam oder Missbrauch.
  • Der Code ist größtenteils von der Qualität „mein-erstes-Plugin“ basierend auf Beispielen, die veraltete Konventionen verwendet haben. Vorschläge zum Stil sind willkommen.
  • Ich möchte, dass das Kontaktformular mit einem Thema verknüpft ist, das mit „contact“ getaggt ist, aber es ist umständlich und wahrscheinlich unnötig. Ich ziehe in Erwägung, einen neuen Routenpunkt hinzuzufügen, der nur das Kontaktformular für mehr Einfachheit ist.
  • 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 zugeschnitten, 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“ eingestellt, kann aber so konfiguriert werden, dass echte E-Mails akzeptiert werden. ↩︎

  2. Es ist sogar möglich, auf das Kontaktformular zu antworten, ob das gut oder schlecht ist. ↩︎

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“