Evolution et les carnets d'adresses

Gnome Evolution est un bon client mail, s’intégrant parfaitement à l’environnement Gnome, mais par contre, dès qu’il s’agit de reprendre une installation existante, c’est un peu la galère si on n’est pas méthodique…

Brièvement, pour avoir les plus grandes chances de réussir une sauvegarde / restauration, le mieux est d’utiliser l’outil fourni par Evolution sous la forme du greffon « Archivage et restauration », une fois ce greffon activé (il l’est par défaut en théorie), il suffit d’aller dans Fichier -> Archiver les paramètres et de suivre la procédure, de même pour la restauration.
La procédure est expliquée dans le manuel d’Evolution.

Par contre, qu’est ce qui se passe si vous faites juste une copie de votre répertoire ou si vous l’avez gardé mais changé de distribution… Pour le courrier, c’est reconnu sans difficulté, les mots de passe et le calendrier normalement aussi, par contre, le carnet d’adresse, ça c’est une autre histoire.

Si vous obtenez une erreur ressemblant à:

Erreur de chargement du carnet d'adresses.
Impossible d'ouvrir ce carnet d'adresses.
Vérifiez que le chemin ~/.evolution/addressbook/local/system existe et que vous avez les permissions pour y accéder.

Message d'erreur détaillé : Autre erreur

c’est le début de l’aventure 😉

Voici ce que j’ai fait (peut être y a-t-il d’autres solutions):

Les fichiers du carnet d’adresses se trouvent dans ~/.evolution/addressbook/local pour ce qui concerne ceux sur l’ordinateur,

  • system/addressbook.db correspond au carnet nommé « Personnel »
  • */addressbook.db correspondent à ceux que vous auriez éventuellement ajoutés

Ces fichiers sont des bases Berkeley, on peut avoir accès à leur contenu en utilisant l’utilitaire fourni avec le soft du même nom: db_dump.

Un exemple:

$ db_dump -p addressbook.db
VERSION=3
 format=print
 type=hash
 h_nelem=2
 db_pagesize=4096
 HEADER=END
 PAS-DB-VERSION\00
 0.2\00
 pas-id-49DC6A1100000000\00
 BEGIN:VCARD\0d\0aVERSION:3.0\0d\0aREV:2009-04-08T09:10:41Z\0d\0aUID:pas-id-49DC6A1100000000\0d\0aEMAIL;X-EVOLUTION-UI-SLOT=1;TYPE=WORK:uneadresse@undomaine\0d\0aX-MOZILLA-HTML:FALSE\0d\0aX-EVOLUTION-VIDEO-URL:\0d\0aFBURL:\0d\0aCALURI:\0d\0aX-EVOLUTION-BLOG-URL:\0d\0aX-EVOLUTION-FILE-AS:unnom\0d\0aN:;unnom;;;\0d\0aFN:unnom\0d\0aNOTE:\0d\0aX-EVOLUTION-SPOUSE:\0d\0aNICKNAME:unpseudo\0d\0aX-EVOLUTION-ASSISTANT:\0d\0aX-EVOLUTION-MANAGER:\0d\0aROLE:\0d\0aTITLE:\0d\0aURL:\0d\0aEND:VCARD\00
DATA=END

Bon ok, c’est pas très clair et c’est inutilisable en l’état, en fait, les premières ligne donnent des informations sur la base, vient ensuite l’ID de l’entrée du carnet d’adresse et enfin le contenu de l’entrée à proprement dite qui est dans le format VCARD, reste plus qu’à mettre en forme:

$ db_dump -p addressbook.db | sed -e '9,$ !d' \
-e '/^ pas-id/d' \
-e 's/\\0d\\0a/\n/g' \
-e 's/^ //' -e 's/\\00//'
BEGIN:VCARD
VERSION:3.0
REV:2009-04-08T09:10:41Z
UID:pas-id-49DC6A1100000000
EMAIL;X-EVOLUTION-UI-SLOT=1;TYPE=WORK:uneadresse@undomaine
X-MOZILLA-HTML:FALSE
X-EVOLUTION-VIDEO-URL:
FBURL:
CALURI:
X-EVOLUTION-BLOG-URL:
X-EVOLUTION-FILE-AS:unnom
N:;unnom;;;
FN:unnom
NOTE:
X-EVOLUTION-SPOUSE:
NICKNAME:unpseudo
X-EVOLUTION-ASSISTANT:
X-EVOLUTION-MANAGER:
ROLE:
TITLE:
URL:
END:VCARD
DATA=END

Déjà, c’est plus parlant, en tout cas pour une application lisant les fichier VCARD, ce qui est le cas d’Evolution:

db_dump -p addressbook.db | sed -e '9,$ !d' \
-e '/^ pas-id/d' \
-e 's/\\0d\\0a/\n/g' \
-e 's/^ //' -e 's/\\00//' > contact.vcf

Exécuter cette commande pour l’ensemble des carnets d’adresses (en modifiant le fichier de sortie bien sûr).

Maintenant, il nous faut supprimer ce qui existe sous Evolution:

evolution --force-shutdown
gconftool-2 --shutdown
rm -r ~/.gconf/apps/evolution/addressbook/
rm -r ~/.evolution/addressbook/

Puis recréer les carnets d’adresses dans Evolution en important à chaque fois l’un des fichiers généré (Fichier -> importer).

Commentaires (3)