Thunderbird exporte son carnet d’adresses en format LDIF ou CSV ou TSV. Or, quand on veut importer son carnet d’adresses dans Roundcube qui n’importe que le format VCF, on est un peu coincé…
Du coup, j’ai écrit rapidement un petit programme python qui fait la conversion (ldif2vcf.py) d’un carnet d’adresses rapidement, puisque je n’ai pas trouvé de solution sur le net ((vive les formats ouverts!)).
Comme il est destiné à Roundcube et que celui ci n’utilise pas (pour l’instant) tous les champs disponibles dans une vcard, seules sont converties les informations de nom, prénom, nom à afficher et adresse mail principale. Par conséquent, si vous voulez l’utiliser pour autre chose, ne vous étonnez pas si toutes les informations ne sont pas récupérées dans le fichier de sortie ((mais la modification de code serait simple pour tout récupérer)).
Le fonctionnement est simple: vous indiquez le fichier d’entrée (.ldif) avec l’option « -f » et le fichier de sortie (.vcf) avec l’option « -o« . Si vous n’indiquez pas de fichier de sortie, le résultat s’affiche à l’écran.
Il faut bien sûr exporter préalablement votre carnet d’adresses depuis Thunderbird quelque part sur votre ordinateur.
exemple:
python ldif2vcf.py -f /tmp/adresses_personnelles.ldif |
ou
python ldif2vcf.py -f /tmp/adresses_personnelles.ldif -o /tmp/sortie.vcf |
L’option « -h » affiche une aide succincte.
Ping : VCF - - Financial Ratios
Je viens de télécharger le logiciel pour permettre la conversion du fichier ldif en vcf, mais une fois décompressé, il ne s’ouvre pas (s’exécute pas). Comment procéder ?
@ Mayet
C’est un logiciel à utiliser en ligne de commande.
Il faut donc ouvrir un terminal, se rendre dans le dossier où a été extraite l’archive et taper la commande donnée.
Il faut que python soit bien sûr installé sur l’ordinateur, mais je crois que c’est le cas par défaut sur Ubuntu.
Bonjour,
C’est en effet une bonne idée d’avoir fait ce script en python.
Je l’ai téléchargé, dézippé et ça m’affiche ceci :
python ldif2vcf.py -f /home/gamoth/Desktop/contact.ldif -o test.vcf
File « ldif2vcf.py », line 51
print « BEGIN:VCARD »
^
SyntaxError: invalid syntax
Une idée ?
Bonne continuation.
@ Gamoth
Étrange…
Je viens de télécharger l’archive et de lancer le programme sans problème. Essaye de retélécharger le programme.
Je ne vois pas d’où ça pourrait venir, surtout à cet endroit.
Ou alors c’est un problème d’encodage. Je n’ai testé que sur des systèmes en UTF8.
Python 3 nécessite des parenthèses pour utiliser la fonction print.
Je suis donc passé en version 2, en faisant python2 blablal
Je vais voir ce que cela a donné.
Merci.
Bonsoir,
Je suis de retour pour constater que le programme ne fonctionne pas :'(
python2 ldif2vcf.py -f test.ldif
Traceback (most recent call last):
File « ldif2vcf.py », line 121, in
main(OPTIONS.file, OPTIONS.output)
File « ldif2vcf.py », line 98, in main
create_vcard(nom, prenom, nomaffiche, mail, fichout)
UnboundLocalError: local variable ‘prenom’ referenced before assignment
Voici un bout de mon fichier ldif :
dn: cn=Toto Toto,mail=toto@toto.fr
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: mozillaAbPersonAlpha
sn: Some SN
cn: toto toto
mail: toto@toto.fr
modifytimestamp: 0
Merci.
Finalement c’était du à une mauvaise composition de mon ldif.
Si tu pouvais effacer mon précédent message car il comporte un nom que j’ai oublié.
Merci
Cela fonctionne super bien! Je l’ai utilisé pour exporter mes contacts Thunderbird (ldif) vers Gmail (vcf). En effet, Gmail ne permet pas d’importer les fichiers csv issus de Thunderbird (il voit toutes les infos comme des « Notes »).
MERCI!!!
Merci beaucoup, quel bonheur de trouver des gens compétents qui donnent ! librement votre,
N.Granier
Merci pour ce petit programme qui m’a fait gagner pas mal de temps.
Bonjour,
Formidable programme, pour moi aussi ça fonctionne.
J’essaye d’y ajouter les n° de téléphone, mais je n’arrives pas à adapter le programme. Je ne récupère pas la donnée en sortie.
Pourriez-vous m’aider SVP ?
Carlito
Mis en lien.
Merci.
@Carlito
J’ai modifié le programme pour qu’il note le téléphone dans la vcard. Re-télécharge le et ré-essaie, ça devrait fonctionner.
zut ! je n’y arrive pas sous XP. Est ce seulement possible ?
A priori, oui, aucune fonction spécifique à l’OS n’est utilisée, c’est du python simple.
Le mieux est d’indiquer les messages d’erreurs visibles dans la console.
Bonjour,
J’ai un message d’erreur (je suis sur seven avec python 2.3.5) :
>>> python ldif2vcf.py -f /cp/test.ldif -o /cp/test.vcf
File « », line 1
python ldif2vcf.py -f /cp/test.ldif -o /cp/test.vcf
^
SyntaxError: invalid syntax
>>>
Merci pour votre aide
@ Flower
salut,
ce n’est pas DANS python que tu dois le lancer, mais dans une console « cmd » simple (menu démarrer, taper « cmd » dans le champ de recherche. Ensuite, aller à l’endroit où se trouve le programme et ton fichier ldif et taper la commande)
effectivement, cela fonctionne mieux,
merci
Bonjour
j’ai tout fait et tout c’est passé normalement mais roundcube ne veut pas de mon fichier test.vcf (format non valide)??
Je nage
Merci d’avance
Pareil pour moi !
Je ne sais pas non plus. Je viens de refaire le test et ça fonctionne. Comment as tu exporté ton fichier? depuis Thunderbird? Quelle version? Et quelle version de roundcube?
Salut,
l’hébergement où j’utilise Roundcube vient de passer de Debian old-stable à Lenny, du coup, le script d’import ne fonctionne plus effectivement. Je crois que c’est la 0.7.1-1~bpo60+1 (backport). La stable était la 0.3.1-6
salut a tous
je sais je suis un nul en info avant que lisiez mon post mais j’ai besoin d’un service svp
comme vous j’ai un fichier csv et ldif, et roundcube me demande du vcard.
J’ai un Windows seven (de la merde je sais)
Comment je dois faire pour réaliser la meme chose que vous ? (convertir)
Je ne connais pas assez pour y arriver juste avec vos post
Merci d’avance
J’ai un peu ramé, mais finalement c’était moi le responsable.
Il faut que le chemin soit « RIGOUREUSEMENT EXACT » et que les noms
de fichiers soient de quelques caractères (exp: sortie.vcf) comme
indiqué dans l’aide et également pour le fichier .ldif (exp: abcde.ldif)
Merci @ Mayet
JM
Bonsoir,
J’ai découvert votre script il y a deux jours. J’ai pu le lancer sur un export ldif de thunderbird mais je ne suis pas arrivé à l’importer dans roundcube.
J’ai regardé le fichier généré et le marqueur « END:VCARD » n’est pas à la ligne.
Donc j’ai modifié votre script en remplacant la ligne 65 ;
sortie.write(« TEL;TYPE=HOME,VOICE:%s » % telephoneNumber)
par
sortie.write(« TEL;TYPE=HOME,VOICE:%s\n » % telephoneNumber)
Et maintenant c’est ok!
Je suppose que c’est ce problème qu’on rencontré lolocosto et miraks.
(Pour info, j’utilise Thunderbird 17 et Roundcube Webmail 0.8.4)
J’espère que ça aidera et merci pour le script!
Bonjour Manuberro,
merci pour ce script !
il fonctionne à merveille pour la conversion de carnets d’adresses exportés en .ldif provenant de Seamonkey (versions testées: 1.18 …c’est déjà ancien; et plus récente version 2.05);
Le carnet .vcf convertit est importé « nickel » sans aucune manip supplémentaire dans Simple Mail (version 2.84) installé avec Firefox 18.0.
Pour info: utilisé ici sur la distro dPup-Exprimo-5.X.3.6.2 (dérivé de PuppyLinux) et Python installé en « montant » l’archive devx_squeeze_5.X.3.6.2.1.sfs (procédé spécifique et courant à PuppyLinux).
Merci encore
Charlie
Content que ça serve encore!
Merci pour ce script qui fait gagner du temps !
Bonjour,
j’essaye à mon tour d’utiliser votre logiciel et je n’y arrive pas. je suis sur mac et quand je l’enregistre puis je l’ouvre sur mon ordi, il s’ouvre dans un fichier text edit. Pouvez-vous m’aider ? Merci
@ krumpli
Bonjour,
je ne connais pas mac, mais il ne faut pas ouvrir le programme, il faut le lancer avec python.
Une recherche sur google me donne ces deux liens qui devraient vous donner la solution:
http://python.developpez.com/cours/DiveIntoPython/php/frdiveintopython/installing_python/macosx.php
http://fr.openclassrooms.com/forum/sujet/executer-un-fichier-python-sous-mac-os-x-84391
J’essaye de suite et je vous dis.
Merci pour votre réactivité !
j’ai regardé mais ce n’est pas du tout à ma portée… tant pis, je vais chercher ailleurs et merci quand même !
Merci pour ce script !
Par contre, il y a effectivement une erreur, telle que signalée (et avec la correction) de francharb.
Il y a un dépôt Github pour ce script ?
Salut,
je viens de modifier le script pour corriger l’erreur signalée par Francharb.
Non, pas de dépôt Github.
Je viens de récuperer le script et de le modifier pour porter un annuaire ldif vers un vieux format Android GingerBread.
J’ai charge le vcf , le vieux smartphone a tout avalé sans râler.
Néanmoins, il a fallut bricoler un tantinet pour faire les backups de 2 SIM, du telephone, reprendre les données sous thunderbird, trier , classer , épurer et exporter en formeat ldif.
Merci encore pour ce script sympathique que j’aurais du ecrire si je ne l’avais pas trouvé iic.
Bonne journée à tous.
Bonjour
Je dois exporter des contacts de thunderbird vers outlook 2013, la conversion se passe bien, j’obtient un fichier.vcf mais quand je l’ajoute dans outlook, il n’ajoute que le premier contact du fichier pas les autres.
Je ne trouve pas la cause, merci à vous.
Cordialement
Bonjour,
avec vous regardé le contenu du fichier vcf avec un éditeur de texte? Y a t-il tous les contacts ou seulement le premier?