Lors de l’envoi de notifications par e-mail accompagnées de pièces jointes, la structure MIME multipart résultante est malformée. Les pièces jointes sont incluses en tant que partie « alternative » plutôt qu’en tant que partie « mixed ». Par conséquent, certains clients de messagerie, comme Thunderbird, n’affichent pas ces pièces jointes car elles sont interprétées comme un simple format alternatif du contenu de l’e-mail, comme le texte par rapport au HTML.
[La citation suivante provient d’un rapport de bug essentiellement identique contre Mailer qui repose également sur le module Mail.]
ce à quoi je m’attends pour la structure de l’e-mail :
multipart/mixed multipart/alternative text/plain text/html application/pdf (c'est-à-dire dans le cas d'une pièce jointe PDF)ce que je reçois :
multipart/alternative text/plain text/html application/pdf (c'est-à-dire dans le cas d'une pièce jointe PDF)l’effet pratique :
Thunderbird affiche le bon corps de texte, selon la préférence de l’utilisateur (txt ou html), mais n’affiche pas la pièce jointe en tant que fichier joint (elle est cependant présente dans le code source de l’e-mail sous forme de bloc encodé en base64). Le client de messagerie iOS affiche un corps d’e-mail vide et uniquement la pièce jointe PDF en tant que fichier, car c’est la dernière entrée, et apparemment le client de messagerie ne rend alors que cela.
Il existe quelques rapports de bugs potentiellement liés au module Mail sur lequel Discourse repose. Certains de ces rapports sont clos avec une implication non déclarée selon laquelle l’alimentation des parties d’une manière particulière résout le problème. Je ne suis pas sûr de savoir ce qui se passe ici, mais plusieurs de ces rapports sont liés depuis le rapport que j’ai cité et lié ci-dessus.