====== 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. ===== - Un serveur POP3 (Dovecot en l'occurrence, sur une Debian Lenny), va recevoir dans un premier temps trois petits messages à destination d'un utilisateur. - 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 : {{ :aaatips:thunderbird-1.png?600 |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: 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: 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: 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 : {{ :aaatips:thunderbird-3.png?600 |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: 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 : {{ :aaatips:thunderbird-5.png?600 |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: 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: 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). {{:aaatips:cochon.jpg?60 |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 : {{ :aaatips:thunderbird-pj.png?600 |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 : {{ :aaatips:detache.png?600 |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: 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-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 : - 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. - Effacez vos messages inutiles, puis videz la poubelle. - Compactez régulièrement vos dossiers. - 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.