To be able to sort automatically notification emails sent by Discourse, it would be great if they could have customs headers (or a subject tag) based on the message’s content/content:
For example, here is a list of headers Bugzilla sends with each notification email:
X-Bugzilla-Reason: CC AssignedTo
X-Bugzilla-Type: dep_changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Classification: Other
X-Bugzilla-ID: 1014331
X-Bugzilla-Product: mozilla.org
X-Bugzilla-Component: Server Operations
X-Bugzilla-Version: other
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: foobar@email.com
X-Bugzilla-Status: RESOLVED
X-Bugzilla-Resolution: FIXED
X-Bugzilla-Priority: –
X-Bugzilla-Assigned-To: email@email.com
X-Bugzilla-Target-Milestone: —
X-Bugzilla-Flags:
X-Bugzilla-OS: Linux
X-Bugzilla-Changed-Fields: Status Resolution
X-Bugzilla-Changed-Field-Names: bug_status resolution
FYI, there is now a category-specific List-Id header sent along with unsubscribe headers, and the ability to add your own generic headers for all notifications with the email custom headers site setting.
For those who are wondering how to set the custom email header, here it is.
Go to your Settings Panel >> Email or use below link https://forums.example.com/admin/site_settings/category/email, you should replace the domain name with your own.
Search for email custom headers, and set your own. That’s it!
Je ne vois nulle part dans le code où quelque chose comme %{optional_tags} serait substitué dans un en-tête qui a été ajouté au paramètre du site email custom headers. Ce que je trouve, c’est cette méthode qui est utilisée pour définir la valeur des en-têtes personnalisés :
Elle est appelée depuis :
J’essaierai d’obtenir plus de détails de l’équipe Discourse sur la manière dont le paramètre est censé être utilisé et quelles valeurs pourraient être substituées dans les en-têtes personnalisés.
Il y a une certaine complexité avec les modèles par rapport au paramètre email_subject que je ne comprends pas complètement — il semble que ce dernier ne soit pas utilisé s’il y a un modèle, mais je ne suis pas sûr quand il n’y en a pas ! Mais au-delà de cela, l’essentiel est que si la fonction qui a construit les en-têtes personnalisés utilisait le même système de modèles, cela fonctionnerait et les en-têtes personnalisés pourraient contenir des informations dynamiques utiles.