Hop,

Il y a quelques temps j'ai branché un site sur le plugin facteur et j'ai eu des retours d'utilisateurs qui trouvaient étonnant que les notifications du site aient changé d'apparence. En effet, leur client mail ou leur webmail affichait les emails au format HTML. À l'époque, j'avais fourbé en modifiant le styles des emails de facteur pour les faire ressembler à du texte, cf :

https://github.com/brunob/octopouce/commit/88d5ba473b838ac8fcff920b70c3c2cf957fdd6d

Visuellement ça faisait le job, mais le site envoyait toujours des mails HTML...

Puis, la semaine dernière, le problème s'est posé sur seenthis.net, et j'ai eu le plaisir de tomber sur un commentaire du code de facteur donnant un astuce pour envoyer des mails txt uniquement :

// si le mail est en texte brut, on l'encapsule dans un modele surchargeable
// pour garder le texte brut, il suffit de faire un modele qui renvoie uniquement #ENV*{texte}

https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/facteur/trunk/inc/envoyer_mail.php#L115

Introduit par ce commit https://zone.spip.net/trac/spip-zone/changeset/59363/

Tout plein d'entrain, j'ai tenté d'appliquer cette fourberie mais j'ai remarqué que ça ne suffit pas, cf :

https://github.com/seenthis/seenthis_squelettes/issues/211#issuecomment-510162521

De ce que j'ai pu voir en mode pas à pas, il y a deux problèmes :

- dans inc/envoyer_mail.php on remplit tout le temps la variable $message_html et donc la classe facteur applique isHTML() à true ce qui génère un mail avec un content type qui vaut text/html puis affecte le contenu de $message_html à $this->Body cf https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/facteur/trunk/classes/facteur.php#L180
- puis, juste en dessous, on affecte $message_texte à $this->AltBody

Donc, pour vraiment envoyer uniquement des emails txt avec facteur, j'ai du (en plus) passer par le pipeline facteur_pre_envoi et modifier le content type de l'objet et vider AltBody, cf :

https://github.com/seenthis/seenthis/commit/da4b40355bc77233604f75947c820418c56c1a40

Voilà, je suis content, nos mails sont bien en texte brut et font moins de mal à la planète ^^

La question : est-ce un comportement voulu ? Si oui, je m'occuperai de mettre à jour le commentaire afin que d'autres personnes galèrent moins que moi à l'avenir :)

++
b_b
----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Répondre à