Contourner le bug d'ouverture des PDF dans Thunderbird

Dans Thunderbird, il y a un bug assez embêtant décrit ici: https://bugzilla.mozilla.org/show_bug.cgi?id=659355. (à ce propos, suite à une petite discussion sur la ML Mozilla Entreprise, et un lien ajouté vers ce bug, il y a de l'activité, de bonne chance que ce problème soit corrigé enfin directement dans Thunderbird, en espérant que le correctif soit backporté dans la version esr de Thunderbird, sinon, il faudra attendre la prochaine esr).

Les symptômes du problème: impossible d'ouvrir certains fichiers PDF attachés à des mails, Adobe Reader (ou n'importe quel autre lecteur de PDF) indiquant que le fichier est corrompu. Par contre, si au lieu d'ouvrir le fichier directement on l'enregistre d'abord sur le disque, là pas de soucis, on peut l'ouvrir.

Le problème vient d'un mauvais Content-Type dans la source du mail, souvent, sous cette forme: =?windows-1252?q?application/pdf au lieu de application/pdf.

Non content d'empêcher l'ouverture des PDF, ce bug “contamine” Thunderbird en quelque sorte: si on essai d'ouvrir un de ce fichiers dont le Content-Type est invalide, notre Thunderbird ajoute une association entre ce mauvais Content-Type et l'extension PDF, du coup, tous les fichiers PDF que l'on joint à nos mails se retrouvent eux aussi avec ce mauvais Content-Type, qui pourra à son tour contaminer un autre Thunderbird, et nous voilà pris dans un spirale assez dure à arrêter.

Voilà pour la présentation du problème.

La solution de contournement consiste à utiliser l'extension OpenAttachmentByExtension (voir cette page http://nic-nac-project.de/~kaosmos/index-en.html#openattach).

Avec cette extension, on peut créer des règles pour que Thunderbird ne se soucis plus du Content-Type et se base uniquement sur l'extension des fichier pour l'ouverture. Une fois installé, on peut donc le configurer comme ceci:

Configuration de l'extension

On utilise SumatraPDF qui en plus d'être plus rapide qu'Adobe Reader, a un chemin du binaire qui est fixe, et ne dépend pas de la version installées, ça simplifie pas mal les choses pour notre extension OpenAttachmentByExtension

Configuration automatique avec iPasserelle

Si vous avez la chance d'avoir une iPasserelle, il est possible de configurer l'extension de façon centralisée (pas encore possible de déployer l'extension elle-même, mais ça ne saurait tarder). Pour ça, il faut que le paquet WPKG thunderbird-config soit déployé sur les postes du parc. Il suffit ensuite de créer un fichier /usr/share/mozilla-mcd/thunderbird.mod.fixpdf.php qui contient ça:

// OpenAttachmentByExtension // Contourne un bug dans Thunderbird si le Content-Type n'est pas correct // 64bits ? if(getenv("PROGRAMFILES(x86)") != "") { var path_sumatrapdf = "C:\\Program Files (x86)\\SumatraPDF\\SumatraPDF.exe"; } // 32bits else { var path_sumatrapdf = "C:\\Program Files\\SumatraPDF\\SumatraPDF.exe"; } lockPref("openattachment.extension.PDF",path_sumatrapdf); lockPref("openattachment.extension.pdf",path_sumatrapdf); lockPref("openattachment.use_charset",false); // Fin de la configuration de OpenAttachmentByExtension

Et voilà, au prochain démarrage de Thunderbird, l'extension sera re-configurée comme vous voulez