Table des matières

Thunderbird et POP

De l'art et de la manière de ne pas laisser engraisser son profil.

Position du problème

Lorsque l'on utilise un MUA pour collecter ses messages avec le protocole POP3, les messages récupérés du serveur sont copiés « quelque part » sur la machine locale, pièces jointes comprises. Il se produit alors une occupation de l'espace disque, que l'on peut gérer finement pour peu que l'on ait pris conscience de la façon dont les choses se passent. Nous allons voir comment les messages sont stockés et surtout pourquoi ce que l'on croit effacé ne l'est pas…

La manip.

  1. Un serveur POP3 (Dovecot en l'occurrence, sur une Debian Lenny), va recevoir dans un premier temps trois petits messages à destination d'un utilisateur.
  2. Un MUA (Thunderbird, en l'occurence, sur une Ubuntu Jaunty), va aller lire ces messages et nous allons en profiter pour regarder dans les entrailles de l'oiseau.

Nous passons sur la configuration du serveur et aussi sur celle du MUA, pour arriver tout de suite au cœur du problème : Les trois messages sont relevés sur le serveur

Nous avons « quelque part » (suivant le système d'exploitation utilisé), un dossier créé par Thunderbird, lorsque l'on a configuré le compte POP. Le contenu en est le suivant :

-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Drafts.msf
-rw-r--r-- 1 chris chris 2,0K 2009-05-21 15:38 Inbox
-rw-r--r-- 1 chris chris 2,9K 2009-05-21 15:38 Inbox.msf
-rw------- 1 chris chris   25 2009-05-21 15:38 msgFilterRules.dat
-rw-r--r-- 1 chris chris   61 2009-05-21 15:38 popstate.dat
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Sent.msf
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Templates.msf
-rw-r--r-- 1 chris chris    0 2009-05-21 15:38 Trash
-rw-r--r-- 1 chris chris 1,5K 2009-05-21 15:38 Trash.msf

Nous allons nous intéresser ici aux deux fichiers Inbox et Trash. Ce dernier est actuellement vide, mais pas Inbox :

From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000014a155113
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <root@essaivirt.maison.mrs>
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id 6374A28F03; Thu, 21 May 2009 14:52:47 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 1
Message-Id: <20090521125247.6374A28F03@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:52:47 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le premier message.

From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000024a155113
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <root@essaivirt.maison.mrs>
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id 9FC7228F04; Thu, 21 May 2009 14:54:00 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 2
Message-Id: <20090521125400.9FC7228F04@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:54:00 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le second message.

From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000034a155113
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <root@essaivirt.maison.mrs>
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id E5CB528F04; Thu, 21 May 2009 14:54:19 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 3
Message-Id: <20090521125419.E5CB528F04@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:54:19 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le troisième message.

Nous trouvons dans cet unique fichier le texte des trois messages, à la suite l'un de l'autre. Comment Thunderbird s'y retrouve ? Là n'est pas la question. Inbox.msf est là pour ça.

Lecture puis effacement du message 2

Avec notre Thunderbird, nous lisons, puis effaçons le message 2 : Le message a été lu, puis effacé Il nous reste de visibles les messages 1 et 3. Nous pouvons nous attendre à retrouver le message 2 dans la poubelle, donc dans Trash :

-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Drafts.msf
-rw-r--r-- 1 chris chris 2,0K 2009-05-21 15:38 Inbox
-rw-r--r-- 1 chris chris 3,5K 2009-05-21 15:38 Inbox.msf
-rw------- 1 chris chris   25 2009-05-21 15:38 msgFilterRules.dat
-rw-r--r-- 1 chris chris   61 2009-05-21 15:38 popstate.dat
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Sent.msf
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Templates.msf
-rw-r--r-- 1 chris chris  671 2009-05-21 15:38 Trash
-rw-r--r-- 1 chris chris 1,9K 2009-05-21 15:38 Trash.msf

Effectivement, Trash n'est plus vide (671 octets) :

$ cat Trash
From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000024a155113
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <root@essaivirt.maison.mrs>
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id 9FC7228F04; Thu, 21 May 2009 14:54:00 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 2
Message-Id: <20090521125400.9FC7228F04@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:54:00 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le second message.

Mais il n'a pas échappé à notre œuil de lynx que la taille de Inbox n'a pas diminué pour autant : toujours 2Ko !

$ cat Inbox
From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000014a155113
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: 
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id 6374A28F03; Thu, 21 May 2009 14:52:47 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 1
Message-Id: <20090521125247.6374A28F03@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:52:47 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le premier message.

From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000024a155113
X-Mozilla-Status: 0009
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: 
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id 9FC7228F04; Thu, 21 May 2009 14:54:00 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 2
Message-Id: <20090521125400.9FC7228F04@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:54:00 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le second message.

From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000034a155113
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: 
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id E5CB528F04; Thu, 21 May 2009 14:54:19 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 3
Message-Id: <20090521125419.E5CB528F04@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:54:19 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le troisième message.

Moralité

Le fait d'effacer le message s'est traduit par une augmentation de l'espace disque utilisé !

Vidage de la poubelle

Si nous vidons la poubelle, le fichier Trash sera purgé et reviendra à une taille nulle, mais Inbox reste toujours inchangé :

-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Drafts.msf
-rw-r--r-- 1 chris chris 2,0K 2009-05-21 15:38 Inbox
-rw-r--r-- 1 chris chris 3,5K 2009-05-21 15:38 Inbox.msf
-rw------- 1 chris chris   25 2009-05-21 15:38 msgFilterRules.dat
-rw-r--r-- 1 chris chris   61 2009-05-21 15:38 popstate.dat
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Sent.msf
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Templates.msf
-rw------- 1 chris chris    0 2009-05-21 15:38 Trash
-rw-r--r-- 1 chris chris 1,6K 2009-05-21 15:38 Trash.msf

Notez qu'au passage, Inbox.msf a un tout petit peu grossi. C'est normal, il contient maintenant plus d'informations sur la façon de gérer Inbox.

Moralité

Nous avons lu un message, nous l'avons détruit, nous avons vidé la corbeille. Pourtant, nous n'avons rien gagné en espace disque !

Il vous faut purger

Il y a tout de même moyen de récupérer l'espace perdu dans Inbox, par ces messages détruits mais qui s'accrochent : Compactage du dossier Un clic du bouton droit sur le « Courrier entrant » (qui n'est autre, vous l'avez compris, que le fichier Inbox, dont le contenu est affiché de façon intelligente grâce aux informations contenues dans Inbox.msf) permet d'accéder à la fonction « Compacter ». Le résultat est sans appel :

-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Drafts.msf
-rw------- 1 chris chris 1,4K 2009-05-21 15:38 Inbox
-rw-r--r-- 1 chris chris 2,4K 2009-05-21 15:38 Inbox.msf
-rw------- 1 chris chris   25 2009-05-21 15:38 msgFilterRules.dat
-rw-r--r-- 1 chris chris   61 2009-05-21 15:38 popstate.dat
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Sent.msf
-rw-r--r-- 1 chris chris 1,1K 2009-05-21 15:38 Templates.msf
-rw------- 1 chris chris    0 2009-05-21 15:38 Trash
-rw-r--r-- 1 chris chris 1,4K 2009-05-21 15:38 Trash.msf

Inbox a perdu les 600 octets du message lu et effacé. Vérifions :

$ cat Inbox
From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000014a155113
X-Mozilla-Status: 0000
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <root@essaivirt.maison.mrs>
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id 6374A28F03; Thu, 21 May 2009 14:52:47 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 1
Message-Id: <20090521125247.6374A28F03@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:52:47 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le premier message.

From - Thu May 21 15:03:16 2009
X-Account-Key: account2
X-UIDL: 000000034a155113
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:                                                                                 
Return-Path: <root@essaivirt.maison.mrs>
X-Original-To: chris
Delivered-To: chris@essaivirt.maison.mrs
Received: by essaivirt.maison.mrs (Postfix, from userid 0)
	id E5CB528F04; Thu, 21 May 2009 14:54:19 +0200 (CEST)
To: chris@essaivirt.maison.mrs
Subject: message 3
Message-Id: <20090521125419.E5CB528F04@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 14:54:19 +0200 (CEST)
From: root@essaivirt.maison.mrs (root)

Ceci est le troisième message.

Il n'y a effectivement plus aucune trace du message 2.

Moralité

Il faut penser à compacter régulièrement les dossiers. La poubelle, ce n'est pas nécessaire. Mais les autres dossiers, il faut les gérer de la même manière, y compris ceux que vous avez pu créer vous-même pour classer votre courrier.

Accessoirement, tant qu'il n'y a pas eu de compactage, il y a toujours moyen de bidouiller quelque chose pour récupérer un message détruit, même une fois la poubelle vidée.

La pièce jointe

Nous avons tous dans nos connaissances des bons vivants qui ne résistent pas au plaisir de nous envoyer des messages avec une pièce jointe, bien propriétaire, bien grosse, bien lourde et (quelquefois) bien drôle.

SMTP ne sait transporter que du texte, ne l'oublions pas. Pourtant, la pièce jointe peut être une vidéo avec des images et du son, mais sans texte. MIME et les encodages type « base-64 » permettent ce prodige. Voyons ce que ça donne, mais avec une simple image jpeg. Le processus serait identique avec toute pièce jointe (jpg, png, bmp, gif (animé), wmv, mpg, avi et toutes les autres formes qui ne sont pas du simple texte).

Sisi, elle est drôle !Je m'envoie un message typique, avec une image typique. La seule différence avec le cas réel, c'est que plus la pièce jointe est drôle, plus la liste des destinataires est longe et visible. Ici l'image est vraiment très drôle et pèse en réalité 264 Ko (en plus du poids de l'humour), mais la liste des destinataires a volontairement été écourtée.

Ce qui est intéressant dans l'histoire, c'est ce qu'il se passe au niveau du MUA du destinataire : La pièce jointe Et comment elle est enregistrée dans Inbox (préalablement vidée et compactée) :

-rw------- 1 chris chris 358K 2009-05-21 16:38 Inbox

Déjà, les 264 K0 sont devenus 358 Ko à cause de l'encodage. Mais voyons ceci dans le texte :

From - Thu May 21 16:37:19 2009
X-Account-Key: account2
X-UIDL: 000000044a155113
X-Mozilla-Status: 0001
X-Mozilla-Status2: 10000000
X-Mozilla-Keys:                                                                                 
Return-Path: 
X-Original-To: chris@essaivirt.maison.mrs
Delivered-To: chris@essaivirt.maison.mrs
Received: from [192.168.0.68] (unknown [192.168.0.68])
	by essaivirt.maison.mrs (Postfix) with ESMTP id 12BCC28F07
	for ; Thu, 21 May 2009 16:35:42 +0200 (CEST)
Message-ID: <4A1566BF.6030109@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 16:35:43 +0200
From: Christian Caleca 
User-Agent: Thunderbird 2.0.0.21 (X11/20090409)
MIME-Version: 1.0
To: chris@essaivirt.maison.mrs
Subject: Tu vas te marrer :-D
Content-Type: multipart/mixed;
 boundary="------------090100090302060307020705"

This is a multi-part message in MIME format.
--------------090100090302060307020705
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit



--------------090100090302060307020705
Content-Type: image/jpeg;
 name="Cochon.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="Cochon.jpg"

/9j/4AAQSkZJRgABAgEASABIAAD/4R3hRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEa
AAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAUAAAAcgEyAAIAAAAU
AAAAhodpAAQAAAABAAAAnAAAAMgAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIDcu
MAAyMDA1OjAyOjA2IDIxOjI1OjA3AAAAAAOgAQADAAAAAf//AACgAgAEAAAAAQAAAligAwAE
AAAAAQAAApUAAAAAAAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAABFgEbAAUAAAABAAABHgEo
AAMAAAABAAIAAAIBAAQAAAABAAABJgICAAQAAAABAAAcswAAAAAAAABIAAAAAQAAAEgAAAAB
/9j/4AAQSkZJRgABAgEASABIAAD/7QAMQWRvYmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCE
AAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAIAAdAMBIgACEQEDEQH/3QAEAAj/xAE/AAAB
BQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkK
CxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFD
résumons tout de même...
0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0R
NETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0Rf/W3+NETRE0RNETRE0RNETR
E0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0
RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RN
ETRE0RNETRE0Rf/X3+NETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE
0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0R
NETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0Rf/Q3+NETRE0RNETRE0RNETR
E0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0
RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RN
ETRE0RNETRE0Rf/R3+NETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE
0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0R
NETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0RNETRE0Rf/Z
--------------090100090302060307020705--
Intéressant n'est-ce pas ? Et souvenez-vous qu'il ne suffit pas d'effacer et de vider la poubelle…

Mais imaginons que l'image plaise à son destinataire et qu'il souhaite la garder. Qu'il souhaite même garder une trace de ce message. Il est alors possible de détacher la pièce jointe pour la sauver ailleurs : Détachons cet humour Oui, mais, ça ne change rien à la taille de Inbox :

-rw------- 1 chris chris 360K 2009-05-21 17:08 Inbox

Sauf bien entendu si l'on prend soin de compacter après :

-rw------- 1 chris chris 1,6K 2009-05-21 17:10 Inbox

Ce qui fait qu'il ne reste plus que :

$ cat Inbox
From - Thu May 21 16:37:19 2009
X-Account-Key: account2
X-UIDL: 000000044a155113
X-Mozilla-Status: 0001
X-Mozilla-Status2: 10000000
X-Mozilla-Keys:                                                                                 
Return-Path: <chris@essaivirt.maison.mrs>
X-Original-To: chris@essaivirt.maison.mrs
Delivered-To: chris@essaivirt.maison.mrs
Received: from [192.168.0.68] (unknown [192.168.0.68])
	by essaivirt.maison.mrs (Postfix) with ESMTP id 12BCC28F07
	for <chris@essaivirt.maison.mrs>; Thu, 21 May 2009 16:35:42 +0200 (CEST)
Message-ID: <4A1566BF.6030109@essaivirt.maison.mrs>
Date: Thu, 21 May 2009 16:35:43 +0200
From: Christian Caleca <chris@essaivirt.maison.mrs>
User-Agent: Thunderbird 2.0.0.21 (X11/20090409)
MIME-Version: 1.0
To: chris@essaivirt.maison.mrs
Subject: Tu vas te marrer :-D
Content-Type: multipart/mixed;
 boundary="------------090100090302060307020705"

This is a multi-part message in MIME format.
--------------090100090302060307020705
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit



--------------090100090302060307020705
Content-Type: image/jpeg;
 name="Cochon.jpg"
Content-Disposition: attachment; filename="Cochon.jpg"
X-Mozilla-External-Attachment-URL: file:///home/chris/Cochon.jpg
X-Mozilla-Altered: AttachmentDetached; date="Thu May 21 17:08:17 2009"

The original MIME headers for this attachment are:
Content-Type: image/jpeg;
 name="Cochon.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="Cochon.jpg"


--------------090100090302060307020705--

Moralité des moralités

Si l'on a pour habitude de conserver ses messages, il est nécessaire de le faire bien :

  1. Détachez les pièces jointes à garder. Vous les aurez alors sous la forme d'un fichier « natif » indépendant de votre MUA. N'oubliez pas de compacter après cette opération.
  2. Effacez vos messages inutiles, puis videz la poubelle.
  3. Compactez régulièrement vos dossiers.
  4. N'oubliez pas que les dossiers Envoyés, Brouillons, Modèles, Indésirables (si vous l'utilisez), ainsi que les dossiers que vous avez pu créer pour vos classements suivent les mêmes règles.

Tout ceci est vrai pour Mozilla Thunderbird et le reste pour une très grande majorité d'autres MUAs.

Si vous n'y prenez garde, le dossier dans lequel votre MUA stocke vos messages risque rapidement de prendre beaucoup d'embonpoint ce qui, en plus de faire perdre inutilement de l'espace disque, va aussi ralentir considérablement votre gestion de la messagerie. Certains MUAs pourront même « perdre les pédales » si les fichiers de stockage deviennent trop volumineux.