La catégorie email nécessite-t-elle reply_by_email_enabled ?

Situation

  • reply_by_email_enabled désactivé, nous ne voulons pas que les gens répondent par e-mail
  • une catégorie réservée aux administrateurs pour les notifications provenant d’un système externe
  • la catégorie a une adresse e-mail configurée
  • email_in est activé
  • des e-mails sont envoyés à l’adresse e-mail de la catégorie
  • les e-mails sont rejetés avec BadDestinationAddress

La cause

Après une heure de débogage, je suis tombé sur le commit suivant : FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub

FIX: Interdire les réponses aux catégories lorsque la réponse par e-mail est désactivée (#33641)

Lorsque le paramètre reply_by_email_enabled est défini sur false, nous n’incluons plus de lien de réponse dans les notifications par e-mail. Cependant, nous n’empêchons pas les e-mails réels envoyés à une adresse email_in configurée associée à une catégorie. Ce changement prend en considération le paramètre dans Email::Receiver#check_address.

et le code affecté ne retournera plus de catégorie si reply_by_email_enabled n’est pas activé.

    def self.check_address(address, include_verp = false)
      # ne vérifier le groupe/catégorie que si 'email_in' est activé
      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? # <-- ajouté
      end

Pourquoi ? :scream:

J’ai tellement de questions :

  1. pourquoi ce changement ? Du tout ? Cela ne fait que rendre le système plus rigide. Si je ne veux pas que les gens envoient un e-mail à une catégorie, il suffit de supprimer l’adresse e-mail de la catégorie ?
  2. pourquoi est-ce implémenté de cette façon ?
  • apparemment, l’envoi d’e-mails aux groupes n’est pas un problème ?
  • si reply_by_email_enabled est faux, il n’est pas nécessaire d’itérer sur les catégories ?
  • en supprimant la catégorie de la liste des catégories, l’erreur devient BadDestinationAddress, ce qui est TRÈS faux et VRAIMENT difficile à déboguer
  1. le paramètre dont cela dépend soudainement s’appelle réponse par e-mail. Ce n’est pas ce que je fais.

Outre la manière dont cela a été implémenté, je ne vois honnêtement pas l’intérêt.

Je ne peux imaginer AUCUNE situation où le simple fait de supprimer l’adresse e-mail de la catégorie suffirait si l’on veut empêcher les gens d’envoyer des e-mails à une catégorie. Et l’implication est qu’il est désormais impossible d’avoir une catégorie qui reçoit des e-mails sans activer la réponse par e-mail à l’échelle du site.

S’il y a une très bonne raison que je manque, n’hésitez pas à reclasser ceci en Feature

4 « J'aime »

J’ai en fait découvert cela moi-même et je suis déjà en train de l’examiner.

Je suis d’accord que la correction effectuée dans FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub était mauvaise car elle reposait sur et introduisait un effet secondaire, mais nous ne l’avons pas remarqué car les tests sont agencés de telle sorte que les conditions pour le déclencher n’étaient pas présentes. Je travaille actuellement à corriger cela.