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!
No veo en ninguna parte del código dónde algo como %{optional_tags} se sustituiría en una cabecera que se ha añadido a la configuración del sitio email custom headers. Lo que sí encuentro es este método que se utiliza para establecer el valor de las cabeceras personalizadas:
Se llama desde:
Intentaré obtener más detalles del equipo de Discourse sobre cómo se pretende utilizar la configuración y qué valores se podrían sustituir en las cabeceras personalizadas.
Hay cierta complejidad con las plantillas frente a la configuración email_subject que no entiendo completamente; parece que esta última no se usa si hay una plantilla, ¡pero no estoy seguro de cuándo no hay una plantilla! Pero aparte de eso, lo básico es que si la función que construyó las cabeceras personalizadas usara el mismo sistema de plantillas, esto funcionaría y las cabeceras personalizadas podrían tener información dinámica útil.