5.5 Modèle de mail
Les modèles de mail permettent de paramétrer les mails qui seront envoyés par Dynacase. Un modèle de mail permet de définir :
- l'expéditeur,
- le(s) destinataire(s),
- le sujet du mail,
- le corps du mail,
- les pièces jointes
Chacune de ces parties pourra être dynamique en fonction des valeurs du document auquel le mail envoyé est rattaché.
Le modèle de mail porte les informations suivantes :
- Titre (Obligatoire)
- Titre sous lequel sera enregistré le modèle de mail. Cette valeur ne sert que dans Dynacase, et ne sera pas exposée à l'utilisateur final (sauf dans l'historique système).
- Famille
-
Famille à laquelle est rattaché le modèle de mail. Cette famille permet de lister les attributs qui seront utilisables pour la composition du mail.
Note : Dans l'éditeur du corps de message, les clefs d'attributs ne sont accessibles que lors d'une modification du document après avoir sélectionné la famille et non directement lors de l'ouverture du formulaire d'édition du modèle de mail.
- Famille cycle
- Famille du cycle de vie auquel est rattaché ce modèle de mail. Cette famille permet de lister les attributs qui seront utilisables pour la composition du mail.
- L'émetteur
- Il peut être choisi au moyen de règles avancées à partir des valeurs du document.
- Les destinataires
- Ils peuvent être choisis au moyen de règles avancées à partir des valeurs du document.
- Le sujet
-
Le sujet est un texte libre. Il peut contenir des parties variables issues du document qui va être envoyé, sous la forme
[BALISE]
. Les balises sont générées par le document, et peuvent être complétées par le second paramètre de la méthodeMailTemplate::sendMail()
.Note: attention, le sujet d'un mail ne devant pas contenir de html, il est déconseillé d'utiliser les balises
[V_TITLE]
ou[V_ATTRID]
. - Le corps
- Le corps est un texte html avec mise en forme. Il peut contenir des parties
variables issues du document qui va être envoyé, sous la forme
[BALISE]
. Les balises sont générées par le document, et peuvent être complétées par le second paramètre de la méthodeMailTemplate::sendMail()
. - Les pièces jointes
-
Les fichiers attachés font référence à des attributs de type file (ou image) du document. Les fichiers seront alors en pièce jointe du courriel. Bien sûr, ces attributs peuvent être des listes de fichiers (attribut file ou image dans un tableau).
Il est possible d'utiliser la notation
:
pour aller chercher des valeurs sur les documents liés (par exemple :TST_MYID:THE_FILE
récupère la valeur de l'attributTHE_FILE
dans le document référencé par l'attribut relationTST_MYID
). La notation:
peut être utilisée plusieurs fois pour aller de relation en relation (par exemple :TST_RELATIONONEID:OTHER_RELATIONID:THE_FILE
).
5.5.1 Spécification de l'émetteur ou du destinataire
L'émetteur ou les destinataires peuvent être choisis parmi :
5.5.1.1 Adresse fixe
Le destinataire est alors statique. Une aide à la saisie permet de récupérer l'adresse d'un utilisateur existant, mais une fois la valeur saisie, elle ne sera jamais mise à jour.
L'adresse indiquée doit être dans une forme acceptable pour le champ from
d'une requête SMTP (ie. de la forme "nom expéditeur" <mail@host.net
.
5.5.1.2 Valeur du document lié
5.5.1.2.1 Attribut texte
Le destinataire est alors dynamique, et est rattaché à un attribut textuel du
document. Cet attribut doit contenir une adresse email dans une forme
acceptable pour le champ from d'une requête SMTP (ie. de la forme
"nom expéditeur" <mail@host.net
).
Il est possible d'utiliser la notation :
pour aller chercher des valeurs sur
les documents liés (par exemple : TST_MYID:THE_MAIL
récupère la valeur de
l'attribut THE_MAIL
dans le document référencé par l'attribut relation
TST_MYID
.)
La notation :
peut être utilisée plusieurs fois pour aller de relation en
relation (par exemple : TST_RELATIONONEID:OTHER_RELATIONID:THE_MAIL
).
5.5.1.2.2 Attribut relation
Le destinataire est alors dynamique, et est rattaché à un attribut de type relation (account ou docid) du document.
Si le document cible implémente une méthode ::getMail()
, alors elle sera
utilisée pour renseigner l'émetteur. Sinon, il sera récupéré à partir de
l'attribut US_MAIL
du document cible.
Note : Pour l'émetteur, les adresses de groupes ne peuvent être utilisés (il est en effet interdit de spécifier un émetteur multiple au niveau de la norme SMTP.
5.5.1.3 Paramètre de famille texte
Le destinataire est alors dynamique, et est rattaché à un paramètre de la
famille du document. Ce paramètre doit contenir une adresse email dans une
forme acceptable pour le champfrom d'une requête SMTP (ie. de la forme
"nom expéditeur" <mail@host.net
).
Note : La notation :
n'est pas autorisée pour les paramètres.
5.5.1.4 Paramètre de famille relation
Le destinataire est alors dynamique, et est rattaché à un paramètre de famille de type relation (account ou docid).
Si le document cible implémente une méthode ::getMail()
, alors elle sera
utilisée pour renseigner l'émetteur. Sinon, il sera récupéré à partir de
l'attribut US_MAIL
du document cible.
Note : Pour l'émetteur, les adresses de groupes ne peuvent être utilisés (il est en effet interdit de spécifier un émetteur multiple au niveau de la norme SMTP.
5.5.1.5 Valeur du workflow lié
5.5.1.5.1 Attribut cycle
Il se comporte comme un attribut texte, mais est récupéré sur le workflow associé au document.
5.5.1.5.2 Relation cycle
Il se comporte comme un attribut relation, mais est récupéré sur le workflow associé au document.
5.5.1.5.3 Paramètre cycle
Il se comporte comme un paramètre de famille texte, mais est récupéré sur la famille du workflow associé au document.
5.5.1.6 Document destinataire
3.2.19 Le destinataire est obtenu dynamiquement, lors de l'envoi du mail, à partir d'un document qui implémente l'interface IMailRecipient.
Les documents sélectionnables dans ce champ sont tous les documents dont la
classe implémente l'interface IMailRecipient
.
Le destinataire est obtenu de manière dynamique lors de l'envoi du mail par
l'appel à la méthode ::getMail()
de ce document.
5.5.2 Sujet et corps du mail
Le sujet et le corps du mail sont considérés comme des layouts et les balises applicables sont utilisables à l'exception de la balise BLOCK
car il n'est pas possible de faire un setBlockData sur un modèle de mail.
De plus, le contrôleur par défaut est appelé avant le rendu du template donc toutes les clefs de ce contrôleur sont disponibles dans le sujet et le corps du mail.
La balise [TITLE]
est notamment disponible, elle permet d'intégrer la version textuelle du titre du document associé au template.
5.5.3 Hyperliens
5.5.3.1 Calcul des liens
Les liens sont générés au moyen de la
méthode Doc::getDocAnchor
.
Les URLS dans les modèles de mail sont composées à partir de la valeur du
paramètre CORE_MAILACTIONURL
, lui-même composé à partir
du paramètre CORE_MAILACTION
.
5.5.3.2 Désactivation des liens
Lorsque le mail est envoyé à des personnes qui n'ont pas de compte sur le système d'information, il est inutile de leur envoyer des liens vers des ressources auxquelles ils n'ont pas accès. Il est donc possible de désactiver tous les liens vers les documents, au moyen de l'attribut avec liens, qui doit alors être décoché.
5.5.4 Enregistrement des messages envoyés
Les messages envoyés peuvent être enregistrés. Dans ce cas, le message est stocké dans la famille message envoyé, et son profil est identique à celui du document servant à l'envoi.
Pour stocker le message il faut cocher l'attribut Enregistrer une copie.
Note : Attention, cela peut générer un grand nombre de documents, ce qui peut conduire à terme à une dégradation des performances.
5.5.5 Historique
Pour chaque message envoyé, un message est ajouté à l'historique du document servant à l'envoi. Ce message contient :
- le titre du modèle de mail
- le sujet du message
- les destinataires.
Si une erreur survient lors de l'envoi du message, elle est ajoutée à l'historique du document servant à l'envoi, et est retournée à l'utilisateur.
5.5.6 Limitations
Les messages ainsi générés ne sont pas des listes de diffusion : un seul mail est envoyé. Aussi, lors de l'envoi d'un message à plusieurs destinataires, tous recevront le même message, et il n'est pas possible de personnaliser le message par utilisateur.
Le sujet et le corps du mail ne peuvent pas faire appel à l'instruction BLOCK
.