Fusionner les documents à partir de votre carnet d'adresses Thunderbird

Les dernières nouvelles du front du libre, débats et autres informations générales sur nos suites bureautiques préférées ou sur ce site, en évitant de provoquer toute polémique (troll).
Aucun support assuré ici : posez votre question dans la section appropriée.

Modérateur : Vilains modOOs

psilocybe
Membre hOOnoraire
Membre hOOnoraire
Messages : 135
Inscription : 21 mai 2012 19:40

Fusionner les documents à partir de votre carnet d'adresses Thunderbird

Message par psilocybe »

Salut,

Il est possible de fusionner facilement des documents dans Writer à partir de votre carnet d'adresses Thunderbird.

Pour cela il vous faut :
  • Installez Thunderbird, si ce n'est pas déjà fait, et créez des adresses dans le carnet d'adresses avec au moins un nom et une adresse email.
Une fois jdbcDriverOOo installé et LibreOffice redémarré correctement, vous devez vous connecter à votre carnet d'adresses Thunderbird. Pour ce faire, assurez-vous que Thunderbird est fermé et suivez ces étapes :
  • Dans LibreOffice, allez dans : Fichier-> Nouveau -> Base de données -> Se connecter à une base de données existante -> Pilote SQLite -> Suivant :
    • Pour Windows : C:\Users\votre_nom\AppData\Roaming\Thunderbird\Profiles\votre_profil.default-release\abook.sqlite [1]
    • Pour Linux : /home/votre_nom/.thunderbird/votre_profil.default-release/abook.sqlite [1]
  • Terminez l'assistant avec les options par défaut (enregistrez la base de données dans LibreOffice pour qu'elle soit accessible pour la fusion de documents dans Writer) et vous devriez trouver votre carnet d'adresses Thunderbird composé de 3 tables (list_cards, lists, properties)
Le carnet d'adresses Thunderbird ne peut pas être utilisé tel quel, il faut créer une vue afin de consolider les données. Merci à @Villeroy pour cette requête.

Dans Base, créez une vue appelée AddressBook (peu importe la commande SQL qu'elle contient). Une fois créé, essayez de la modifier en mode SQL (clic droit sur la vue puis Editer en mode SQL...) et collez le contenu de la requête suivante :

Code : Tout sélectionner

SELECT DISTINCT "DisplayName"."V" AS "DisplayName", "PrimaryEmail"."V" AS "PrimaryEmail", "SecondEmail"."V" AS "SecondEmail", "AllowRemoteContent"."V" AS "AllowRemoteContent", "CellularNumber"."V" AS "CellularNumber", "Company"."V" AS "Company", "Custom1"."V" AS "Custom1", "FaxNumber"."V" AS "FaxNumber", "FirstName"."V" AS "FirstName", "HomeAddress"."V" AS "HomeAddress", "HomeCity"."V" AS "HomeCity", "HomeCountry"."V" AS "HomeCountry", "HomePhone"."V" AS "HomePhone", "HomeState"."V" AS "HomeState", "HomeZipCode"."V" AS "HomeZipCode", "JobTitle"."V" AS "JobTitle", "LastModifiedDate"."V" / 86400.00000 + 25569.00000 AS "LastModifiedDate", "LastName"."V" AS "LastName", "NickName"."V" AS "NickName", "Notes"."V" AS "Notes", "PhotoType"."V" AS "PhotoType", "PhotoURI"."V" AS "PhotoURI", "PopularityIndex"."V" AS "PopularityIndex", "PreferDisplayName"."V" AS "PreferDisplayName", "PreferMailFormat"."V" AS "PreferMailFormat", "WebPage1"."V" AS "WebPage1", "WorkAddress"."V" AS "WorkAddress", "WorkCity"."V" AS "WorkCity", "WorkCountry"."V" AS "WorkCountry", "WorkPhone"."V" AS "WorkPhone", "WorkState"."V" AS "WorkState", "WorkZipCode"."V" AS "WorkZipCode", "_JabberId"."V" AS "_JabberId", "card", "_vCard"."V" AS "_vCard" FROM "properties" AS "P" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "AllowRemoteContent" ) AS "AllowRemoteContent" ON "P"."card" = "AllowRemoteContent"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "CellularNumber" ) AS "CellularNumber" ON "P"."card" = "CellularNumber"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "Company" ) AS "Company" ON "P"."card" = "Company"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "Custom1" ) AS "Custom1" ON "P"."card" = "Custom1"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "DisplayName" ) AS "DisplayName" ON "P"."card" = "DisplayName"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "FaxNumber" ) AS "FaxNumber" ON "P"."card" = "FaxNumber"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "FirstName" ) AS "FirstName" ON "P"."card" = "FirstName"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "HomeAddress" ) AS "HomeAddress" ON "P"."card" = "HomeAddress"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "HomeCity" ) AS "HomeCity" ON "P"."card" = "HomeCity"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "HomeCountry" ) AS "HomeCountry" ON "P"."card" = "HomeCountry"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "HomePhone" ) AS "HomePhone" ON "P"."card" = "HomePhone"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "HomeState" ) AS "HomeState" ON "P"."card" = "HomeState"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "HomeZipCode" ) AS "HomeZipCode" ON "P"."card" = "HomeZipCode"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "JobTitle" ) AS "JobTitle" ON "P"."card" = "JobTitle"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "LastModifiedDate" ) AS "LastModifiedDate" ON "P"."card" = "LastModifiedDate"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "LastName" ) AS "LastName" ON "P"."card" = "LastName"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "NickName" ) AS "NickName" ON "P"."card" = "NickName"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "Notes" ) AS "Notes" ON "P"."card" = "Notes"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "PhotoType" ) AS "PhotoType" ON "P"."card" = "PhotoType"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "PhotoURI" ) AS "PhotoURI" ON "P"."card" = "PhotoURI"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "PopularityIndex" ) AS "PopularityIndex" ON "P"."card" = "PopularityIndex"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "PreferDisplayName" ) AS "PreferDisplayName" ON "P"."card" = "PreferDisplayName"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "PreferMailFormat" ) AS "PreferMailFormat" ON "P"."card" = "PreferMailFormat"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "PrimaryEmail" ) AS "PrimaryEmail" ON "P"."card" = "PrimaryEmail"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "SecondEmail" ) AS "SecondEmail" ON "P"."card" = "SecondEmail"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WebPage1" ) AS "WebPage1" ON "P"."card" = "WebPage1"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WorkAddress" ) AS "WorkAddress" ON "P"."card" = "WorkAddress"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WorkCity" ) AS "WorkCity" ON "P"."card" = "WorkCity"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WorkCountry" ) AS "WorkCountry" ON "P"."card" = "WorkCountry"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WorkPhone" ) AS "WorkPhone" ON "P"."card" = "WorkPhone"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WorkState" ) AS "WorkState" ON "P"."card" = "WorkState"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "WorkZipCode" ) AS "WorkZipCode" ON "P"."card" = "WorkZipCode"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "_JabberId" ) AS "_JabberId" ON "P"."card" = "_JabberId"."C" LEFT OUTER JOIN ( SELECT "card" AS "C", "value" AS "V" FROM "properties" WHERE "name" = "_vCard" ) AS "_vCard" ON "P"."card" = "_vCard"."C"
Vous pouvez désormais exploiter le contenu du carnet d'adresses Thunderbird (en lecture seule car il s'agit d'une vue) dans LibreOffice et effectuer des fusions de documents à partir de vos adresses Thunderbird.
Cela peut se faire avec les outils de fusion proposés par LibreOffice ou l'extension eMailerOOo qui permet de :
  • Créer des listes de diffusion.
  • Personnaliser l'objet du courriel.
  • Envoyer des courriels au format HTML.
  • Fusionner puis convertir au format PDF les éventuels fichiers joints au courriel.
  • Regrouper l'envoi du mailing dans un fil de courriels.
Si vous souhaitez utiliser eMailerOOo, utilisez simplement la vue créée précédemment (AddressBook) comme table principale et :
  • Déclarer comme colonnes d'adresse courriel : PrimaryEmail et SecondEmail.
  • Déclarez comme colonnes de clé primaire la colonne card (l'avant-dernière de la liste des colonnes).

[1] Veillez à remplacer votre_nom et votre_profil par les valeurs adaptées à votre configuration.
LibreOffice 7.3.7.2 - Lubuntu 22.04 - Python 3.10 - Java 11 OpenJDK amd64