tuto:astuces_windows:contourner_bug_pdf_thunderbird

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 ces 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:

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

Supprimer les fichiers mimetypes corrompues

Pour supprimer automatiquement les fichiers mimetypes.rdf qui seraient corrompue, voilà un petit scripts de sessions (sur iPasserelle, à ajouter simplement dans le répertoire /home/e-smith/files/shares/tools/files/scripts/session)

batch
REM recherche du nom de profile aleatoire cree
for /f %%a in ('dir /b "%APPDATA%\Thunderbird\Profiles\*.default"') do SET TBPROFILE=%%a
SET MIMETYPES=%APPDATA%\Thunderbird\Profiles\%TBPROFILE%\mimetypes.rdf
 
type "%MIMETYPES%" | find /I "windows-1252"
 
if errorlevel 1 (
   goto END
)
 
echo "Suppression du fichier mimetypes contenant des entrees corrompues"
del /F "%MIMETYPES%"
 
:END

Lancé à chaque ouverture de session, le script supprimera le fichier mimetypes.rdf du profile Thunderbird (qui sera ensuite recréé tout neuf) si il contient la chaine de caractère windows-1252 (typique de la présence du problème)

  • tuto/astuces_windows/contourner_bug_pdf_thunderbird.txt
  • Dernière modification: 22/08/2012 12:22
  • de dani