Avoir un contenu personnalisé pour une alerte

4.0
Avoir un contenu personnalisé pour une alerte
0
Tags: #<Tag:0x00007f4a04ae8e18>

#1

Bonjour,

J’ai créé une alerte pour envoyer un mail avec pièce jointe aux utilisateurs.

Je voudrais saisir un « contenu » d’alerte différent suivant le profile de la personne connectée. J’ai donc créé un attribut (non physique) format texte long 5000, que j’alimente et qui servira à remplir le contenu de l’alerte.

Voici un exemple :

		var message ="<h3>" + usrtitle + " " + usrfirstname + " " + usrlastname + "," + "</h3>" +
				"<p>Vous venez de générer un avis d'échéance sur notre site : <b>"+
				"<br/>Merci pour votre confiance</p>" +
				"<br/></p>" +
				"<br/>Ceci est un e-mail automatique, merci de ne pas y répondre directement. </p>";
				
		var leaseMessageAlert = rent.getField("leaseMessageAlert");
		leaseMessageAlert.setValue(message);
console.log("leaseMessageAlert = " + rent.getField("leaseMessageAlert").getValue());		

Dans la console, je vois le texte au bon format :`

2019-01-15 21:31:44,644 INFO [com.simplicite.util.ScriptInterpreter] SIMPLICITE|http://e3m.simplicite.io:10028||INFO|aek_inv@e3m.xyz|com.simplicite.util.ScriptInterpreter|ImmoLease/the_ajax_ImmoLease||Evénement: leaseMessageAlert =
Monsieur Abed Investisseur,
Vous venez de générer un avis d'échéance sur notre site : 
Merci pour votre confiance



Ceci est un e-mail automatique, merci de ne pas y répondre directement.

Par contre, dans le mail que je reçois vie cette alerte, le texte est simplement le contenue de ma variable :

Pourriez-vous me dire svp que dois-je faire pour que le texte dans le mail soit au bon format ?
Merci d’avance.
Abed.


(David AZOULAY) #2

Pour que Simplicité comprenne que le contenu est du HTML (et mette le bon MIME type) je pense qu’il faut que ça commence par <html>, sinon ce sera considéré comme du texte brut.


#3

Malgré l’ajout de “html”, le pb de format reste le même :
`
Dans le code :

var message =	"<html>" +
				"<p>Bonjour </p>"+
				"<p> Veuillez trouver ci-joint l'avis d'échéance de votre locataire </p>"+
				"</html>";

Dans le mail :


(François Genestin) #4

Ce n’est pas la bonne approche de créer un champ qui contient le contenu. Les champs sont fusionnés au corps du mail en texte brut.

Il faut passer par les hooks pour modifier l’alerte dynamiquement via preAlert

https://www.simplicite.io/resources/documentation/01-core/businessobject-code-hooks.md

MyObject.preAlert = function(alert) {
  if(alert.getName()=="MyAlert") {
    alert.setSubject("FRA", "texte");
    alert.setContent("FRA", "<html>...");
    alert.addRecipient("john@domain.com", Alert.RECIP_TO);   
  }
};

#5

Merci. ça fonctionne mieux.
Bonne journée.
Abed.