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éthode MailTemplate::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éthode MailTemplate::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'attribut THE_FILE 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_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.

×