Maillistener ne récupère pas les mails avec une apostrophe

Bonjour,
En effet j’ai le même problème. J’ai également l’alarme HOMIRIS et j’ai fait le même constat → Une apostrophe dans l’objet du mail empêche le plugin d’intégrer l’email.

Bonjour @DDEF,
Chez moi Homiris m’envoie depuis hier les email avec les apostrophes et ça me pose problème.
Est–ce-que Homiris t’envoie toujours les email sans apostrophes ?
Pourrais-tu me donner leur adresse mail.
D’avance merci

Bonjour,

Idem pour moi depuis hier, je viens de leur envoyer un message depuis mon compte.

Il n’y a plus qu’a attendre leur réponse ou pas.

Gérard

Bonjour @lunarok

Comme beaucoup, j’utilise ton plugin depuis sa sortie.
Celui-ci fonctionne très bien mais nous sommes quelques uns à l’utiliser pour connaitre l’activation/désactivation de notre système d’alarme et depuis peu nous rencontrons un problème qui nous empêche son fonctionnement.

Les mails que nous recevons contiennent des apostrophes dans le sujet du mail et il semble que la présence de ce caractère dans le sujet du mail empêche le plugin d’analyser le mail.
Le plugin passe bien le message comme « lu » dans la boite mail mais il ne remonte pas ses infos à Jeedom (les commandes Expéditeur, HTML, Sujet, Texte restent vides).
En l’état, nous ne pouvons plus l’utiliser dans nos scénarios.

Peux-tu y jeter un coup d’oeil pour nous dire si c’est quelque chose qui peut être corrigé dans le plugin?

En PJ mes logs en debug avec les essais suivants:
[2022-06-14 06:35:38] envoi d’un mail test → OK
[2022-06-14 06:38:26] envoi d’un mail avec une apostrophe « classique » (celle que l’on a sur un clavier) → OK
2022-06-14 06:40 envoi d’un mail avec le sujet qui pose problème → Pas de réception du mail dans MailListener et aucune trace dans les logs
[2022-06-14 06:41:28] envoi d’un mail avec le sujet qui pose problème en ayant enlevé les deux apostrophes → OK
2022-06-14 06:43 envoi d’un mail avec le sujet qui pose problème en ayant laissé une des deux apostrophes → Pas de réception du mail dans MailListener et aucune trace dans les logs

Le sujet du mail qui pose problèmes est le suivant:
« Mise à l’arrêt de votre système d’alarme par la télécommande »
ou
« Mise en marche de votre système d’alarme par la télécommande »

L’apostrophe qui ne pose pas de problème est celui-ci: ’
L’apostrophe qui bloque le fonctionnement est celui-ci: ’

Merci

Julien

maillistener.txt (2,3 Ko)
maillistener_install.txt (16,5 Ko)
maillistener_node.txt (369 Octets)

Bonjour,

J’ai le même problème, je ne comprenais rien :wink:

Je suis donc bloqué au même endroit à cause des apostrophes semble-t-il.

Merci !

Amaustan

Bonsoir @clovis , je confirme, ça à a nouveau changé depuis ce week-end :disappointed:

Trois solutions:

  • espérer une mise à jour du plug in
  • demander à EPS de tenir compte de notre souhait
  • passer par un sms et non un mail pour remonter l’info

Je pense que si nous sommes plusieurs à exprimer notre besoin d’un mail dont le sujet ne contient pas d’apostrophes, nous serons écoutés.
En effet, à ma dernière demande, ils sont revenus en arrière et m’ont même téléphoné pour demander si j’étais satisfait du traitement de ma demande.
Alors… Écrivez !

Je vais le faire et donner à nouveau le lien de ce forum.

1 « J'aime »

Mail envoyé:

Bonjour

Je vous ai déjà contactés il y a environ 2 mois pour ce problème qui avait été résolu.

Nous sommes plusieurs à utiliser SIGNO et un plugin Jeedom sniffeur de mails afin que notre domotique s’adapte à l’état de notre alarme Homiris.

Une apostrophe réapparue ce week-end dans les mails SIGNO nous empêche de recevoir ces mails.

Si nous espérons que le plugin sera mis à jour, cela semble compris.

Pourriez vous mettre un sujet de mail sans apostrophe ?

Voici le forum où nous discutons de ce problème:

Cordialement

Bonjour,
Je viens d’envoyer un 2ème email à HOMIRIS.
Je leur ai aussi téléphoné. Ils comprennent le problème et m’ont promis une réponse.
Je pense comme @ddef:
Si nous sommes nombreux à exprimer notre besoin d’un mail dont le sujet ne contient pas d’apostrophes, nous serons écoutés.

3 « J'aime »

Je viens d’avoir la réponse de HOMIRIS.
Ils ne feront pas la modification car le process est très compliqué. Leur procédure pour faire des modifications est très lourde.
Je crois qu’il n’y que @lunarok , en modifiant le plugin, qui pourra nous aider et résoudre ce problème.
Personnellement je ne le connais pas et je ne sais pas comment le contacter

Hello
Cela fait quelques jours que je galère également avec la réception des email HOMIRIS
J’avais identifié le nouveau mail d’Homiris mais pas l’apostrophe (c’est maintenant chose confirmée)

Comme vous, j’attend qu’un sauveur veuille bien nous aider :wink:

Bon courage

Bonjour,

Même problème pour moi avec les e-mails Homiris. J’ai jeté un oeil sur le code du plugin mais je ne suis pas certain que le bug y soit directement, peut-être que cela vient des fonctions node qui prennent en charge la gestion IMAP…

Bonjour à tous,

j’ai donc le même problème que vous.
En debuggant l’erreur renvoyée j’ai bien vu qu’il s’agissait d’un problème de protection de caractères.

TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters
at new NodeError (internal/errors.js:322:7)
at new ClientRequest (_http_client.js:155:13)
at Object.request (http.js:94:10)
at Request.start (/var/www/html/plugins/maillistener/resources/node_modules/request/request.js:751:32)
at Request.write (/var/www/html/plugins/maillistener/resources/node_modules/request/request.js:1491:10)
at end (/var/www/html/plugins/maillistener/resources/node_modules/request/request.js:549:18)
at Immediate._onImmediate (/var/www/html/plugins/maillistener/resources/node_modules/request/request.js:578:7)
at processImmediate (internal/timers.js:464:21) {
code: 'ERR_UNESCAPED_CHARACTERS'
}

dans le fichier plugins/maillistener/resources/maillistener.js, du coté de la ligne 84, on trouve l’appel à l’API Jeedom

apiurl = urlJeedom+'&type=maillistener&messagetype=mailIncoming&email='+email+'&from='+mail.from[0].address+'&subject='+mail.subject;
	console.log(apiurl);
	request({
		url: apiurl,
		method: 'PUT',
		json: {"body": mail.text, "html": mail.html},
	},
	function (error, response, body) {
		if (!error && response.statusCode == 200) {
			console.log('contact Jeedom avec retour :',response.statusCode);
		}
	});

Comme le sujet est intégré à cette URL et qu’il contient des simples quotes, il faut donc « échapper » la chaine. J’ai utilisé encodeURI, il y a surement d’autres fonctions mais j’ai fait au plus vite surtout.

	request({
		url: encodeURI(apiurl),
		method: 'PUT',
		json: {"body": mail.text, "html": mail.html},
	},

Avec cette modif et un restart du listener, je peux à nouveau utiliser mes scénarios liés à l’alarme.
J’epère que ça vous portera chance aussi
++

6 « J'aime »

MERCI BEAUCOUP
Je viens de tester rapidement et apparemment ça fonctionne
Un grand merci @mmourcia pour ton aide et le partage de tes infos.

1 « J'aime »

@mmourcia un grand merci pour avoir chercher et trouver le problème.
Ce serait cool qu’un fix soit fait directement dans le plugin.

1 « J'aime »

Bonjour,
@mmourcia , Merci , modification réalisée et cela marche parfaitement, mon scénario est de nouveau fonctionnel.

Gérard

1 « J'aime »

Merci pour cette solution !
Par contre, comment utilise t-on le code supplémentaire que tu indiques ?

Bonjour @Snoopy ,

Il ne s’agit pas vraiment d’un code supplémentaire mais simplement de remplacer une ligne de code par une autre : url: apiurl, qui devient url: encodeURI(apiurl),.

Pour faire cela, soit tu te connectes en SSH et tu effectues la modification, soit tu utilises l’éditeur de fichier intégré à Jeedom; je t’ai mis un screen pour te repérer

3 « J'aime »

Bonjour @mmourcia ,
un grand merci pour cette solution rapide et efficace!, cela fonctionne également chez moi

nhi

1 « J'aime »

Super ! Merci beaucoup pour les précisions. Ca re-fonctionne sans problème :slight_smile:

1 « J'aime »

La mise à jour est faite en beta.

4 « J'aime »