Situation
reply_by_email_enableddeaktiviert, 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_inist aktiviert- E-Mails werden an die E-Mail-Adresse der Kategorie gesendet
- die E-Mails werden mit
BadDestinationAddressabgewiesen
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_enabledauf false gesetzt ist, wird in E-Mail-Benachrichtigungen kein Antwortlink mehr angezeigt. Allerdings wird damit nicht verhindert, dass tatsächlich E-Mails an eine konfigurierteemail_in-Adresse, die einer Kategorie zugeordnet ist, gesendet werden. Diese Änderung berücksichtigt die Einstellung inEmail::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? 
Ich habe so viele Fragen:
- 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?
- Warum wurde dies so implementiert?
- Offenbar ist der E-Mail-Eingang in Gruppen kein Problem?
- Wenn
reply_by_email_enabledfalsch 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
- Die Einstellung, auf die dies jetzt plötzlich ankommt, heißt Antwort per E-Mail. Das ist nicht das, was ich tue.
- 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.