EsupPortail / esup-otp-api

REST API to send/validate One time passwords
https://www.esup-portail.org/wiki/display/esupotp
MIT License
5 stars 8 forks source link

[ Demande d'évolution ] Utilisation de templates pour les mails de notification #14

Closed nothing-fr closed 7 months ago

nothing-fr commented 1 year ago

Bonjour,

Est-il envisagé de faire évoluer le système de notification par mail de l'API ?

L'utilisation de Templates pourrais permettre la customisation des notifications pour coller à la charte graphique d'un établissement avec des mails en HTML.

J'ai bricolé pour voir sur mon fork : https://github.com/nothing-fr/esup-otp-api/commit/b625d071f66c5fbd9dfa9761b09882810c7e3aaa

mais c'est surement loin d’être formidable n'étant pas développeur... Le résultat donne :

image

nothing-fr commented 1 year ago

Idéalement il faudrait faire mail HTML + Fallback plaintext je pense... Et j'aurais bien aimé récuperer le prénom de la personne dans le LDAP pour mettre "Bonjour <prénom>," au début du mail, mais pas encore regardé comment ça marche cette partie.

aanli commented 1 year ago

Bonjour Fred, Nous n'avions pas prévu faire évoluer la notification par mail. Nous n'avions pas de demandes d'établissements pour une utilisation des mails en production. N'hésite pas à faire des pull requests.

nothing-fr commented 1 year ago

Je vais voir si j'ai le temps de faire un truc plus propre avec un ajout dans le fichier de conf pour ajouter un truc du genre :

html_mail = true
html_mail_template = "/chemin/vers/le/template.jade"

et je ferais peut etre une pull request...

aanli commented 1 year ago

J'ai un établissement qui envisage utiliser l'envoi de code par mail. Si d'autres établissements se manifestent, nous pouvons prioriser l'évolution de cette fonctionnalité pour utiliser un template de mail html avec personnalisation du contenu par rapport à l’utilisateur.

floriannari commented 7 months ago

Bonjour, Vous pouvez maintenant activer l'utilisation des templates et modifier le fichier transports/email_templates/random_code_mail/html.eta pour configurer votre template

(cf commit https://github.com/EsupPortail/esup-otp-api/commit/8241ba7cce3116afdfb08dd3b1401a06c91eb388 )

Le moteur de templates choisi est eta.js, du fait de sa légèreté et de sa simplicité. (En plus, il est activement maintenu, et dispose d'une communauté grandissante.) https://www.npmjs.com/package/eta https://eta.js.org/docs/intro/template-syntax

mais si vous souhaitez utilisez pug, le code ne sera pas difficile à adapter.

PS : J'ai utilisé une arborescence de fichiers compatible avec email-templates pour pouvoir migrer facilement si besoin https://github.com/EsupPortail/esup-otp-api/tree/use_email-templates https://www.npmjs.com/package/email-templates