Configurer le MailEditor

Valoriser le formulaire à l’ouverture

Nous souhaitons renseigner automatiquement le sujet du mail, à l’ouverture du MailEditor, à partir de la valeur du tag Objet du courrier. Nous devons ajouter l’option subject au MailEditorPlugin :


Valorisation automatique du sujet

JSAPI.get().registerForComponentChange(function(api, results, phase) {
		var actions = api.getActions().getHeaderActions();
		var actionAPI = JSAPI.get().getActionFactoryAPI();
		var action = actionAPI.buildMenu("send-email", labels.getLabel("sendEmail"), "fas fa-envelope-open-text", function(actionPresenter){
			var objetCourrier = JSAPI.get().getComponentFormAPI(results.getId()).getComponent().getTagValue("ObjetCourrier");
			new MailEditorPlugin({
			'subject': 'Réponse '+ objetCourrier
			}).open();
		});
		actions.add(action);
});


De la même manière vous pouvez valoriser automatiquement les champs To et Cc respectivement avec les options to et cc.

Appliquer automatiquement un modèle

Afin d’aider les utilisateurs dans la rédaction du contenu, un modèle peut être appliqué à celui-ci. L’utilisateur peut sélectionner un des modèles disponibles depuis le MailEditor. Il est également possible d’appliquer automatiquement un modèle à l’ouverture du MailEditor. Pour cela il est nécéssaire de renseigner l’identifiant du modèle au niveau de l’option template du plugin. Dans le cadre de notre module, nous appliquerons automatiquement le modèle Corps par défaut.

'template': '<templateId>'


Application automatique du modèle

JSAPI.get().registerForComponentChange(function(api, results, phase) {
		var actions = api.getActions().getHeaderActions();
		var actionAPI = JSAPI.get().getActionFactoryAPI();
		var action = actionAPI.buildMenu("send-email", labels.getLabel("sendEmail"), "fas fa-envelope-open-text", function(actionPresenter){
			var objetCourrier = JSAPI.get().getComponentFormAPI(results.getId()).getComponent().getTagValue("ObjetCourrier");
			new MailEditorPlugin({
			'subject': 'Réponse '+ objetCourrier,
			'template': 'EmailDefault'
			}).open();
		});
		actions.add(action);
});


De la même manière vous pouvez appliquer automatiquement une signature en renseignant l’identifiant du modèle de signature au niveau de l’option signature.

Restreindre les modèles proposés à l’utilisateur

Par défaut tous les modèles du scope sont sélectionnables depuis le MailEditor. Cependant il est possible de filtrer les modèles de corps de mail et de signatures disponibles grâce aux options respectives templates et signatures

En prérequi de ce module, 2 templates de corps de mail ont été ajouté à votre scope. Vous devriez donc pouvoir les sélectionner au sein de l’éditeur de mail. Nous souhaitons maintenant restreindre les modèles disponibles dans l’éditeur au modèle Corps par défaut.

Pour cela nous définirons le modèle qui pourra être proposé à l’utilisateur :

'templates': () => { return { 
        subscribe: subscriber => { subscriber([
            {id:'EmailDefault', label:'Mon modèle'} 
        ])}}
    }


Restriction des modèles

JSAPI.get().registerForComponentChange(function(api, results, phase) {
		var actions = api.getActions().getHeaderActions();
		var actionAPI = JSAPI.get().getActionFactoryAPI();
		var action = actionAPI.buildMenu("send-email", labels.getLabel("sendEmail"), "fas fa-envelope-open-text", function(actionPresenter){
			var objetCourrier = JSAPI.get().getComponentFormAPI(results.getId()).getComponent().getTagValue("ObjetCourrier");
			new MailEditorPlugin({
			'subject': 'Réponse '+ objetCourrier,
			'template': 'EmailDefault',
			'templates': () => { return { 
        		subscribe: subscriber => { subscriber([
            		{id:'EmailDefault', label:'Mon modèle'} 
        		])}}
    		}
			}).open();
		});
		actions.add(action);
});


Il est aussi possible de fournir la liste des modèles disponibles par le biais d’une recherche. Pour ne proposer aucun modèle, il est nécéssaire de fournir une liste vide.

Utilisation des variables

Les variables utilisées au sein des modèles sont résolues automatiquement en fonction du context. Il est possible d’ajouter ou de surcharger ses variables en les ajoutant en options du MailEditorPlugin.

'<Nom de la variable>' : '<Valeur>'

Dans notre exemple nous souhaitons valoriser la variable team, utilisée dans le modèle Corps par défaut, avec la valeur Equipe des formateurs FlowerDocs

JSAPI.get().registerForComponentChange(function(api, results, phase) {
		var actions = api.getActions().getHeaderActions();
		var actionAPI = JSAPI.get().getActionFactoryAPI();
		var action = actionAPI.buildMenu("send-email", labels.getLabel("sendEmail"), "fas fa-envelope-open-text", function(actionPresenter){
			var objetCourrier = JSAPI.get().getComponentFormAPI(results.getId()).getComponent().getTagValue("ObjetCourrier");
			new MailEditorPlugin({
			'subject': 'Réponse '+ objetCourrier,
			'template': 'EmailDefault',
			'templates': () => { return { 
        		subscribe: subscriber => { subscriber([
            		{id:'EmailDefault', label:'Mon modèle'} 
        		])}}
    		},
			'team': 'Equipe des formateurs FlowerDocs'
			}).open();
		});
		actions.add(action);
});

Vous devez maintenant observer que la ligne du corps de mail Equipe FlowerDocs a été surchargé par Equipe des formateurs FlowerDocs lorsque vous ouvrez le MailEditor avec ce modèle.

Envoyer l’email

L’email est maintenant entièrement configuré, il est maintenant temps de l’envoyer. Pour cela, il faut spécifier la configuration du serveur SMTP à utiliser. Deux possibilités sont ainsi disponibles :

  • Utiliser directement le serveur SMTP sans traitement préalable
  • Traiter de manière applicative l’email pour un envoi depuis un processus Camunda

SMTP en direct

Afin d’utiliser directement le serveur SMTP sans traitement au préalable de l’email, ajoutez l’option configuration en valorisant avec l’identifiant de la configuration SMTP à utiliser

JSAPI.get().registerForComponentChange(function(api, results, phase) {
		var actions = api.getActions().getHeaderActions();
		var actionAPI = JSAPI.get().getActionFactoryAPI();
		var action = actionAPI.buildMenu("send-email", labels.getLabel("sendEmail"), "fas fa-envelope-open-text", function(actionPresenter){
			var objetCourrier = JSAPI.get().getComponentFormAPI(results.getId()).getComponent().getTagValue("ObjetCourrier");
			new MailEditorPlugin({
			'subject': 'Réponse '+ objetCourrier,
			'template': 'EmailDefault',
			'templates': () => { return { 
        		subscribe: subscriber => { subscriber([
            		{id:'EmailDefault', label:'Mon modèle'} 
        		])}}
    		},
			'team': 'Equipe des formateurs FlowerDocs',
			'configuration': '<identifiant du serveur SMTP>'
			}).open();
		});
		actions.add(action);
});

Traitement préalable et envoi à travers un processus Camunda


Cette partie est ici à titre d’information.

Il est possible d’effectuer un traitement de façon programmatique à l’envoi du mail puis d’utiliser un processus Camunda afin d’envoyer le mail. Cela peut être utile par exemple pour conserver une trâce du mail envoyé en créant un composant avec le mail en contenu. Pour cela, ajoutez l’option postProcessor au plugin.