Spiegelung einer Read-Only Mailingliste in Discourse

:bookmark: Diese Anleitung erklärt, wie Sie einen schreibgeschützten Spiegel einer Mailingliste mit Discourse erstellen. Sie behandelt die notwendigen Site-Einstellungen, die Kategoriekonfiguration und den Abonnementprozess.

:person_raising_hand: Erforderliches Benutzerlevel: Administrator

Discourse kann als Archiv für eine Mailingliste fungieren und registrierten Benutzern die Nutzung der meisten Funktionen ermöglichen. Diese Anleitung führt Sie durch den Prozess der Einrichtung Ihres eigenen Mailinglisten-Spiegels.

:eyes: Sehen Sie dies in Aktion bei unserem Spiegel der Ruby-Talk-Mailingliste.

Zusammenfassung

  • Konfigurieren Sie die Site-Einstellungen für die E-Mail-Verarbeitung
  • Erstellen oder ändern Sie eine Kategorie für die Mailingliste
  • Abonnieren Sie die Mailingliste
  • Verstehen Sie, wie der Spiegelungsprozess funktioniert

Die folgende Anleitung verwendet zwei E-Mail-Adressen als Platzhalter. Sie müssen diese durch Ihre tatsächlichen Adressen ersetzen.

discourse@example.com ist die Adresse für eingehende E-Mails in Ihrem Discourse
mailing-list@foo.test ist die Einreichungsadresse der Mailingliste[1]

Konfigurieren der Site-Einstellungen

  1. Wenn Sie keinen Hosting-Plan nutzen, der eingehende E-Mails vorkonfiguriert, richten Sie POP3-Abruf oder manuellen Abruf über die API für das Konto ein, das mit Ihrer Discourse-E-Mail-Adresse verknüpft ist (z. B. discourse@example.com).

  2. Aktivieren Sie die folgenden Site-Einstellungen:

    • email_in: Zulassen eingehender E-Mails
    • enable_staged_users: Staged-Benutzer aktivieren (entscheidend für den Spiegelungsprozess)
  3. Optionale Einstellungen:

    • Setzen Sie authorized_extensions auf * oder fügen Sie bestimmte Dateierweiterungen hinzu, um die benötigten Anhangtypen zuzulassen
    • Aktivieren Sie always_show_trimmed_content, um allen Benutzern das Anzeigen von zugeschnittenem Inhalt zu ermöglichen (verborgen hinter einem image Button)
    • Aktivieren Sie display_name_on_posts und deaktivieren Sie prioritize_username_in_ux für Namensanzeigeeinstellungen

Erstellen oder Ändern einer Kategorie

  1. Erstellen Sie eine neue Kategorie oder bearbeiten Sie eine bestehende für die Mailinglisten-Beiträge.

  2. Konfigurieren Sie die Kategorieberechtigungen:

    • Klicken Sie auf die Registerkarte „Sicherheit“, dann auf „Berechtigungen bearbeiten“
    • Entfernen Sie alle bestehenden Berechtigungen
    • Fügen Sie „jeder“ mit der Berechtigung „Anzeigen“ hinzu

Wenn Sie fertig sind, sollte es so aussehen:

  1. Konfigurieren Sie die Kategorieeinstellungen:

    • Klicken Sie auf die Registerkarte „Einstellungen“
    • Aktivieren Sie „E-Mails von anonymen Benutzern ohne Konten akzeptieren“
    • Setzen Sie „Benutzerdefinierte eingehende E-Mail-Adresse“ auf die E-Mail-Adresse der Mailingliste (z. B. mailing-list@foo.test)
    • Aktivieren Sie „Kategorie spiegelt Mailingliste“
  2. Speichern Sie die Kategorieeinstellungen.

Abonnieren der Mailingliste

  1. Abonnieren Sie die Mailingliste mit Ihrer Discourse-E-Mail-Adresse (z. B. discourse@example.com).

  2. Wenn die Mailingliste eine Weboberfläche hat, stellen Sie sicher, dass die folgenden Einstellungen gelten:

    • E-Mail-Zustellung ist aktiviert
    • Digest-Modus ist deaktiviert
    • Passwort-Erinnerungs-E-Mails sind deaktiviert

Stellen Sie bei Mailman 2 sicher:

  • „Mail delivery“ ist auf „Enabled“ eingestellt
  • „Set Digest Mode“ ist auf „Off“ eingestellt
  • „Get password reminder email for this list?“ ist auf „No“ eingestellt

Funktionsweise

Das Aktivieren von „Kategorie spiegelt Mailingliste“ ändert die Verarbeitung eingehender E-Mails für diese spezielle Kategorie:

  • Automatisch generierte E-Mails sind erlaubt, auch wenn block_auto_generated_emails aktiviert ist
  • Alle Benutzer können per E-Mail posten und ignorieren dabei die Einstellung email_in_allowed_groups
  • Eingehende E-Mails verwenden die Message-ID, um verwandte Beiträge zu finden, unabhängig von der Einstellung find_related_post_with_key
  • Die Markdown-Interpretation ist auf Codeblöcke beschränkt, die in dreifachen Backticks eingeschlossen sind
  • Ablehnungs-E-Mails werden für Mailinglistenbeiträge nicht gesendet

FAQs

F: Kann ich mehrere Mailinglisten spiegeln?
A: Ja, erstellen Sie für jede Mailingliste eine separate Kategorie und konfigurieren Sie diese wie oben beschrieben.

F: Können Benutzer auf Benachrichtigungen antworten und in der Mailingliste posten?
A: Nein, Antworten auf Benachrichtigungen werden an Discourse gesendet, nicht an die ursprüngliche Mailingliste. Benutzer können nicht direkt über Discourse in die Mailingliste posten.

F: Wie kann ich verhindern, dass Benutzer per E-Mail in die gespiegelte Kategorie posten?
A: Obwohl die Kategorie das Posten per E-Mail erlaubt, können Sie die eingehende E-Mail-Adresse privat halten, um unbefugtes Posten zu verhindern.


  1. d.h. Leute senden an diese Adresse, um in der Liste zu posten, und sie erscheint auch in den An-/CC-Zeilen von E-Mails, die von der Liste an Mitglieder gesendet werden ↩︎

31 „Gefällt mir“

Bedeutet das, dass „jeder Benutzer, der die eingehende E-Mail-Adresse kennt, in diese Kategorie posten kann“? Dies kann verhindert werden, indem man niemandem diese Adresse mitteilt, oder?

Aber vermutlich kann jeder, der eine Benachrichtigung per E-Mail erhält, antworten. Wird diese Antwort als Beitrag an Discourse gesendet oder an die Mailingliste?

2 „Gefällt mir“

Das sind gute Fragen.

Ja, ich denke, das ist möglich, wenn sie die eingehende E-Mail-Adresse kennen und die From-Adresse so fälschen, dass sie mit der Adresse der Mailingliste übereinstimmt.

Ich möchte Nein sagen, bin mir aber bei dieser Frage nicht zu 100 % sicher. Also, vielleicht. Bitte probieren Sie es aus und lassen Sie es mich wissen. Es ist möglich, dass auch hier die Absenderadresse gefälscht werden muss.

Sie wird definitiv an Discourse gesendet.

3 „Gefällt mir“

Ich habe eine Website, auf der eine Google-Gruppe an eine Kategorie weitergeleitet wird, bei der E-Mails von anonymen Benutzern akzeptieren und Spiegelt eine Mailingliste eingestellt sind, aber dennoch E-Mails mit Email::Receiver::UserNotFoundError abgelehnt werden.

Könnte etwas anderes dies auslösen?

2 „Gefällt mir“

Haben Sie gestaffelte Benutzer aktiviert?

4 „Gefällt mir“

Nein. Staged users war aus. Ich nehme an, es muss eingeschaltet sein, damit es funktioniert? (Das ergibt Sinn…) Vielleicht sollte es eine Prüfung dafür geben, wenn man versucht, es zu aktivieren?

2 „Gefällt mir“

Ich bin mir nicht sicher, aber das ist meine beste Vermutung.

EDIT: Es gibt nur einen Ort, an dem dieser Fehler ausgelöst wird, und er sieht so aus:

raise UserNotFoundError unless SiteSetting.enable_staged_users

4 „Gefällt mir“

Ich werde es ausprobieren müssen, aber ich gehe davon aus, dass doch einige Leute versuchen werden zu antworten. Es wäre vielleicht gut, eine oder mehrere dieser Optionen zu haben:

  1. Keine E-Mail senden, auch wenn jemand diese Kategorie beobachtet. Möglicherweise eine Benachrichtigung (oder eine einmalige Nachricht) senden, die besagt, dass sie sich, wenn sie die E-Mail-Zustellung dieser Liste wünschen, {die notwendigen Schritte unternehmen müssen, um sich direkt für die Liste anzumelden}.

  2. Dem Website-Administrator erlauben, die Antwortadresse zu definieren, wenn E-Mails von einer Mailinglisten-Spiegelkategorie gesendet werden. (Natürlich pro Kategorie.) Dann könnten sich Benutzer für diese Liste anmelden, ohne die Zustellung zu aktivieren, Benachrichtigungen von Discourse erhalten und wenn sie antworten, würde diese Antwort tatsächlich an die ursprüngliche Liste gehen.

  3. Eine Option „Antworten in Kategorie umleiten“, bei der beim Antworten ein verknüpftes Thema in einer anderen Kategorie erstellt wird. Zum Beispiel ist die Kategorie „Ankündigungsliste“ ein Spiegel einer Mailingliste und dann „Diskussion über die Ankündigungen“ für Antworten. Der Titel muss noch überarbeitet werden. :slight_smile:

3 „Gefällt mir“

Macht der Leitfaden das deutlich @gerhard?

3 „Gefällt mir“

Nein, das hat es nicht, aber jetzt schon.

5 „Gefällt mir“

Danke! Das hat mich vorher verwirrt, weil ich davon ausging, dass die spezielle Behandlung hier auch gestufte Benutzer irgendwie speziell behandelt (möglicherweise nur für Beiträge zu dieser Kategorie erstellt?).

4 „Gefällt mir“

Kann dies bidirektional gemacht werden, indem ein Konto bei Discourse erstellt wird, das Mitglied der Google-Gruppe ist? Dann würden Beiträge in Foren an GG gesendet, als ob es nur ein weiterer Benutzer auf der E-Mail-Liste wäre (wir müssten alle eingehenden E-Mails von diesem Benutzer ablehnen, um eine Schleife zu vermeiden). Ich frage dies als Möglichkeit, Discourse und GG parallel zu betreiben, während Benutzer wechseln.

Ich spiegele erfolgreich eine Google Groups-Mailingliste, aber sie erkennt keine Themenantworten. Ich erhalte separat die Beiträge Google Topic 1 und dann Re: Google Topic 1. Gibt es eine Möglichkeit, die Erkennung von Themen-Threads zu ermöglichen?