Benötigt die Kategorie E-Mail reply_by_email_enabled?

Situation

  • reply_by_email_enabled deaktiviert, wir wollen nicht, dass Leute per E-Mail antworten
  • eine nur für Administratoren sichtbare Kategorie für Benachrichtigungen aus einem externen System
  • der Kategorie ist eine E-Mail-Adresse zugeordnet
  • email_in ist aktiviert
  • E-Mails werden an die E-Mail-Adresse der Kategorie gesendet
  • die E-Mails werden mit BadDestinationAddress abgewiesen

Die Ursache

Nach einer Stunde Fehlersuche bin ich auf folgenden Commit gestoßen: FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub

FIX: Verbiete Antworten auf Kategorien, wenn Antworten per E-Mail deaktiviert sind (#33641)

Wenn die Einstellung reply_by_email_enabled auf false gesetzt ist, wird in E-Mail-Benachrichtigungen kein Antwortlink mehr angezeigt. Allerdings wird damit nicht verhindert, dass tatsächlich E-Mails an eine konfigurierte email_in-Adresse, die einer Kategorie zugeordnet ist, gesendet werden. Diese Änderung berücksichtigt die Einstellung in Email::Receiver#check_address.

und der betroffene Code gibt keine Kategorie mehr zurück, wenn reply_by_email_enabled nicht aktiviert ist.

    def self.check_address(address, include_verp = false)
      # prüfe nur auf eine Gruppe/Kategorie, wenn 'email_in' aktiviert ist
      if SiteSetting.email_in
        group = Group.find_by_email(address)
        return group if group

        category = Category.find_by_email(address)
        return category if category && SiteSetting.reply_by_email_enabled? <-- hinzugefügt
      end

Warum? :scream:

Ich habe so viele Fragen:

  1. Warum diese Änderung? Überhaupt? Sie macht das System nur weniger flexibel. Wenn ich nicht will, dass Leute an eine Kategorie per E-Mail schreiben, entferne ich einfach die E-Mail-Adresse aus der Kategorie?
  2. Warum wurde dies so implementiert?
  • Offenbar ist der E-Mail-Eingang in Gruppen kein Problem?
  • Wenn reply_by_email_enabled falsch ist, muss die Kategorie nicht einmal nachgeschlagen werden?
  • Durch das Nicht-Zurückgeben der Kategorie wird der Fehler zu BadDestinationAddress, was SEHR falsch ist und SCHAUFELHART zu debuggen ist
  1. Die Einstellung, auf die dies jetzt plötzlich ankommt, heißt Antwort per E-Mail. Das ist nicht das, was ich tue.
  2. Die gleiche Verwirrung zeigt sich im Titel des PRs, der „Verbiete Antworten auf Kategorien“ lautet, was nicht dem entspricht, worum es hier geht (in Discourse ist eine „Antwort auf eine Kategorie“ überhaupt nicht möglich).

Neben der Art und Weise, wie dies implementiert wurde, kann ich den Sinn dahinter ehrlich gesagt nicht erkennen.

Ich kann mir KEINE Situation vorstellen, in der das einfache Entfernen der E-Mail-Adresse aus der Kategorie nicht ausreichen würde, wenn man verhindern will, dass Leute an eine Kategorie per E-Mail schreiben. Und die Konsequenz daraus ist, dass es jetzt unmöglich geworden ist, eine Kategorie E-Mails empfangen zu lassen, ohne die site-weite Funktion „Antworten per E-Mail“ zu aktivieren.

Falls es einen wirklich guten Grund gibt, den ich übersehen habe, könnt ihr dies gerne als Contribute > Feature neu kategorisieren.

5 „Gefällt mir“

Ich habe das tatsächlich selbst herausgefunden und bin bereits dabei, es zu untersuchen.

Ich stimme zu, dass die in FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub durchgeführte Korrektur schlecht war, da sie sich auf einen Nebeneffekt stützte und diesen einführte, was wir jedoch nicht bemerkten, da die Tests so eingerichtet waren, dass die Bedingungen für dessen Auslösung nicht gegeben waren. Ich arbeite gerade daran, dies zu korrigieren.

3 „Gefällt mir“

Mein vorgeschlagener Fix:

https://github.com/discourse/discourse/pull/37227

3 „Gefällt mir“

Dies wurde zusammengeführt @RGJ - können Sie nach dem Aktualisieren überprüfen, ob Ihre Konfiguration wie erwartet funktioniert?

2 „Gefällt mir“

Ja, funktioniert einwandfrei! Danke :slight_smile:

2 „Gefällt mir“