5
(2)

Edit : Suite à des changements nécessaires à la mise en compatibilité avec la version 2007, certaines icones du 1er écran ont dû être modifiées.

Nouveautés V6 : 06/2025
  • Contrairement au mailing standard de Word, l'outil va préserver les signets du document. Ainsi les liens dans les tables des matières, renvois, liens hypertextes… seront toujours fonctionnels sauf si on l'utilise sur un document généré après fusion (option après fusion).
  • Amélioration de la vitesse d'exécution.
  • Possibilité d'ajouter un mot de passe aux fichiers Word et PDF. Pour le cas des PDF, il faudra installer un outil supplémentaire (pdftk_server).
  • Attention : On passe de "Ne pas remplacer..." à "Remplacer {Nom champ} par la valeur correspondante dans les zones signalées par *" pour la case à cocher permettant de choisir si l'outil fait ou non une substitution du texte de certain champs de l'outils.
  • Ajout de nombreux contrôles de validité des données fournit par l'utilisateur.
  • Corrections de bugs.
  • Envoi par mail :
    • Possibilité de crypter une partie ou toutes les informations dans le fichier de configuration cfgMail.txt (mot de passe, clés API…).
    • Fichier d'erreur généré aussi pour l'option Services Web.
    • Ajout d'un niveau de récursivité dans le remplacement champ/valeur pour le texte du message (si le texte du message est fourni par un champ et si celui-ci contient des appels de champs, ils pourront alors être remplacés par leurs valeurs).
    • Ajout de nombreuses options lors de l'envoi (principalement pour Outlook).
    • La plupart des options sont rendues paramétrables via un champ (Destination, Importance, Format du message, services web…).
    • Le fichier de réponses permettant une automatisation totale de l'outil passe de 31 à 42 paramètres.
  • Compatible Office 2007.
    • Le cryptage du fichier de configuration peut ne pas fonctionner sur d'ancienne version de Windows (développement d'un correctif en cour de délibération avec moi même 😁).
    • Un message d'alerte peut demander une autorisation pour valider l'envoi des mails par Outlook (pour chaque mail !). Pour désactiver ce message :
      • Outils > Centre de gestion de la confidentialité > Accès par programme > cocher Ne jamais m'avertir des activités... .

Genèse de cet outil

À la suite d'une question d'une utilisatrice du forum qui correspondait à une légère modification de la solution proposé ici https://1forme.fr/publipostage-par-mail-en-piece-jointe-en-pdf/, j'ai développé une interface utilisateur permettant de paramétrer plus facilement la macro proposée.

À suite de divers commentaires d'utilisateurs (que je remercie), j'ai ajouté d'autres de fonctionnalités.

Pour les anciennes versions, je modifiais simplement l'article Outil pour mailing/publipostage (fractionnement, par email). Pour cette version, j'ai décidé de faire un nouvel article.

Cet outil étant développé de manière ponctuelle et devenant plus complexe, il y a de forte chance que "quelques bugs" soient présents. Je m'en excuse et j'espère que vous m'en informerez.

Objectifs de cet outil

Outil lié au mailing/publipostage avec Word, permettant principalement de générer un fractionnement en plusieurs documents (Word/PDF) du document résultat d'une fusion (avant ou après la fusion effective) et proposer l'envoi de ces documents par e-mail (en corps du message ou en pièce jointe) avec beaucoup plus options d'envois que ce qui est proposé nativement par Word.

  • Utilisable à partir :
    • Du document principal de fusion (celui avec les champs).
    • Du résultat de la fusion : cela permet de personnaliser/contrôler préalablement certains courriers.
  • Permettant de paramétrer l'envoi par email et de choisir la destination du publipostage pour ces emails.
    • Choix du client utilisé pour l'envoi : Outlook, bibliothèque Windows CDO, services web (SMTP2GO, Sendgrid).
    • Choix du compte servant à l'envoi si l'on dispose de plusieurs comptes (le compte utilisé pouvant varier selon l'enregistrement traité).
    • Choix du/des destinataire(s) en tant que destinataire principal, en copie, en copie caché (adresse fixe ou pouvant varier selon l'enregistrement traité).
    • Objet du message pouvant s'adapter pour chaque e-mail (texte fixe ou pouvant varier selon l'enregistrement traité).
    • Choix de la destination du document fusionné en tant que corps du message ou en tant que pièce jointe.
    • Choix du corps du message (document fusionné, texte fixe ou texte pouvant varier selon l'enregistrement traité, import d'un fichier texte ou Html).
    • Ajout de pièces jointes supplémentaires (communes à chaque e-mail et/ou pouvant varier selon l'enregistrement traité).
  • Exécution selon 3 modes de fonctionnements :
    • Mode manuel : L'utilisateur paramètre l'outil à chaque exécution.
    • Mode semi-autonome : Le paramétrage de l'outil est fait totalement ou en partie via un fichier de configuration (fichier de réponses).
    • Mode autonome : Le paramétrage de l'outil est fait totalement via le fichier de configuration (fichier de réponses) et l'exécution est directement déclenchée.

Téléchargement

V6

Lien de téléchargement (zip)

  • MD5 : d85510f0cabc4f83471883e37017f695
  • SHA-512 : 6ea8eba6eaf9c8ccfb6af14a01d4fa5416a69d595f0d4ba3a0f4a9b7634a08da667052a4e252a787fe8e629d874d20868c82fefc8f0ab54348bdaec862be98ce

Installation

Placer le fichier "dézippé" OutilsPublipostage6.dotm dans le dossier "%AppData%MicrosoftWordSTARTUP", par exemple "C:\Users\VOTRE PROFIL\AppData\Roaming\Microsoft\Word\STARTUP".

Utilisation des autres fichiers de l'archive zip :

  • cfgMail.txt : Si vous n'utilisez pas Outlook pour envoyer les mails, le modifier pour indiquer vos informations et identifiants et le placer dans le dossier STARTUP.
  • ResponseFile : Si vous voulez utiliser le mode semi-autonome ou autonome. À placer dans STARTUP ou ailleurs (voir plus bas).

Interface utilisateur

Icone de lancement

Normalement, c'est la dernière icone du ruban Publipostage : "Découper et emails".

Attention : Les documents avant/après fusion doivent être ouverts au préalable !

Word : Icone de lancement de Outils Publipostage
Icone de lancement de Outils Publipostage

1ère fenêtre (Choix du type de document de départ et de la destination du publipostage)

1er écran de l'outil pour le publipostage
Choix du document de départ et de la destination du publipostage
  1. Interface : Pour passer l'interface en langue Anglaise / Française.
  2. Document de départ : Choix du document de départ parmi les documents ouverts et enregistrés.
    • Si ce document est un document principal de fusion (avec les champs de fusion), l'option "Avant fusion" est sélectionnée (seul les mailings/publipostages de type Lettres sont supportés).
    • Si ce document n'est pas un document principal de fusion (avec les champs de fusion), l'option "Après fusion" est sélectionnée (l'outil suppose qu'il s'agit du résultat de la fusion, c'est à dire le document à fractionner).
    • Seuls les documents compatibles et enregistrés sont affichés dans cette listes.
  3. Dans le cas où le document (2) n'est pas un document principal de fusion mais le résultat de la fusion, on doit sélectionner le document principal de fusion ayant servi à générer le document (2). Information nécessaire pour fractionner correctement le document fusionné.
    • Seuls les documents compatibles sont affichés dans cette liste.
  4. Type de sortie : Choix du type de document généré et de leur destination.
    • Option E-mails... : Pour envoyer les documents générés par e-mail via la messagerie. On accèdera à un 2ème écran (Paramétrage des e-mails).
    • Options Fichiers PDF/Word individuels : Pour générer en sortie des fichiers dans un dossier (un fichier par enregistrement de la base de données).
      Avec ces 2 options, on accède à une zone permettant de paramétrer les fichiers générés.
      1er écran de l'outil pour le publipostage (suite)
      Pour les fichiers générés, on pourra utiliser :
      • Un nom fixe (saisi en 8) :
        Les documents ayant le même dossier de destination, le n° d'enregistrement sera ajouté à la fin (exemple : Document1, Document2...).
        • Certains caractères ne sont pas autorisés par Windows et sont non saisissable dans la zone.
      • Un nom variable (saisi également en 8) :
        Si la case à cocher "Ne pas remplacer {Nom champ} par..." (9) est désactivée, tout texte entre {accolades} sera interprété comme un nom de champ de la base données.
        • Les champs de la base données utilisables sont affichés à droite (10) et peuvent être cliquer-glisser dans la zone ou saisies.
        • Pour les noms des champs, il faut respecter les lettres Majuscules/Minuscules (casse) en cas de saisie.
        • Si des caractères non autorisés sont présents dans les valeurs renvoyées par les champs utilisés, ces caractères seront supprimés.
        • Si le nom est vide (par exemple, le cas où il n'est constitué que d'un champ qui renvoie une valeur vide pour un des enregistrements), le nom sera "Document" suivit du n° de l'enregistrement.
        • Si la saisie d'un nom de champ ne correspond pas au nom d'un des champs de la base de données, elle ne sera pas interprétée comme un nom de champ et sera utilisé tel quel.

À l'exécution en mode Manuel ou Semi-autonome, l'outils demandera l'emplacement de sauvegarde des fichiers. L'option "Le texte de la zone "Nom des fichiers" représente le chemin de sauvegarde complet" (11) permet de préciser via la zone Nom de fichier (8), l'emplacement et le nom de sauvegarde des fichiers (chemin d'enregistrement pouvant ainsi être variable).
Exemple : C:\Prospect\{Campagne}\Courrier_{Nom}

Remarques sur la sauvegarde des fichiers :

  • L'ensemble Chemin d'accès et Nom du fichier est limité aux 240 premiers caractères.
  • Si un fichier du même nom est déjà présent dans le dossier de destination, ce dernier sera écrasé.
    Ainsi, si pour plusieurs enregistrements des noms identiques sont générés (via un champ), les fichiers correspondants seront écrasés au fur et à mesure de leur génération (à vous de contrôler cela 😊).
  • Si nécessaire les dossiers du chemin généré seront créés s'ils n'existent pas.

Les zones "Mot de passe accès en lecture*" et "Mot de passe accès en modification*" (12) permettent de protéger les documents générés.

  • Il n'y a pas de contraintes de complexité sur les mots de passe pour valider les mots de passe.
  • Il n'y a pas une double saisie de contrôles.
  • Les mots de passe en lecture et en modification DOIVENT être différents.
  • La protection des fichiers PDF nécessite l'installation d'un programme supplémentaire (voir plus bas).

L'option "Ouvrir le dossier cible..." (13) permet d'afficher le contenu du dossier contenant les fichiers générés (en cas de d'emplacements variables, le dernier sera utilisé).

  1. On valide en cliquant sur le bouton "Paramétrer les emails/Générer les fichiers" (5).
    • Option E-mails... : En cliquant sur le bouton, une 2eme fenêtre s'ouvrira afin de paramétrer les e-mails (voir plus bas).
    • Option Fichiers PDF/Word individuels : Une fenêtre apparait afin de sélectionner le dossier de destination des documents générés si l'option (11) n'a pas été activée.
    • Case à cocher Quitter après exécution : Pour fermer directement la fenêtre de l'outil quand l'exécution est terminée pour les options PDF/Word.

Remarques :

En cas d'envoi de mail via CDO (Windows) ou un service web, des informations de connexions sont nécessaires et doivent être fournies via le fichier "cfgMail.txt" placé dans le dossier STARTUP. Il est possible de sécuriser ces informations en les cryptant avec le bouton 6 (cryptage TripleDES qui est suffisant me semble-t-il).
Un mot de passe sera alors demandé avec une vérification lors de sa création.

Écran de Cryptage

Écran de création d'un mot de passe

Écran de Décryptage

Écran de demande d'un mot de passe

Affiché aussi lors de la sélection de CDO ou Service web comme client pour l'envoi de mail (Attention : met en pause l'exécution en cas d'utilisation d'un fichier de réponses).

2ème fenêtre (Publipostage par e-mails)

Écran de paramétrage des e-mails.

2eme écran de l'outil pour le publipostage si génération d'e-mail
  1. Client d'envoi des e-mails :
  • Option Outlook Standard (ne fonctionne pas avec le "Nouvel Outlook" ni avec la version web d'Outlook, voir Exécuter un nouvel Outlook et un Outlook classique côte à côte).
    • La case à cocher "Outlook en mode 'Travail en mode Hors connexion' " (2) permet d'activer/désactiver ce mode.
      En activant le mode "Hors connexion", Outlook n'envoie pas les messages directement, il les stocke dans le dossier Boîte d'envoi du compte utilisé dans Outlook.
      Cela permet de faire des contrôles et personnalisations supplémentaires pour certains e-mails.
      En désactivant ce mode (Via l'outil ou via le ruban "Envoi/Réception" d'Outlook), les e-mails de la Boîte d'envoi seront alors envoyés.
  • Les 2 options suivantes Windows (CDO) / Service web nécessitent de créer et positionner un fichier de configuration "cfgMail.txt" dans le dossier d'installation "%AppData%MicrosoftWordSTARTUP".
    • Option Windows (CDO) : Collaboration Data Objects est une bibliothèque COM fournie par Microsoft
      • Les destinations RTF/HTML pour les fichiers générés ne sont pas pris en charge.
      • Options disponibles : Importance, niveau de confidentialité, boutons de vote, accusé réception et confirmation de lecture.

Il faut indiquer dans le fichier de configuration cfgMail.txt (dans un ordre quelconque) :

  • Le compte servant à l'envoi (clé SendUserName).
  • L'adresse du serveur SMTP (clé SMTPServer).
  • Le numéro du port à utiliser (clé SMTPServerPort).
  • Le mot de passe à utiliser (clé SendPassword).
  • Si une authentification SSL est nécessaire (clé AuthentifSSL).

Exemple de contenu de cfgMail.txt pour Windows (CDO)

// Ces 5 clés sont obligatoires avec CDO
SendUserName:=aaaa@bbbb.fr
SMTPServer:=smtp.ccccc.com

SendPassword:=azertyuiop
SMTPServerPort:=465
AuthentifSSL:=True
  • Option Service web (SMTP2GO et SendGrid).
    • Choisir dans la liste 4 le service ou le champ contenant le nom du service à utiliser.
    • J'ai sélectionné les services SMTP2go (www.smtp2go.com) et Sendgrid (sendgrid.com) mais j'aurais pu prendre Brevo (www.brevo.com) ou Mailjet (www.mailjet.com). Il fallait bien faire un choix 🤔.
    • Ces services web nécessitent une inscription (pas besoin de CB) et un petit paramétrage en ligne.
    • Ils proposent plusieurs forfaits en fonction du volume de mails envoyés dont un gratuit (par exemple 1000 e-mails par mois pour SMTP2go).
    • Ces services ont aussi des limitations spécifiques (par exemple : une taille totale maximale du mail de 50 Mb ou aux maximum 100 destinataires par champ To, CC, CCI pour SMTP2GO).
    • Il faudra générer une clé (API key) et inscrire les adresses/domaines servant à l'envoi (DE).
    • Les destinations RTF/HTML pour les fichiers générés ne sont pas pris en charge.
    • Seule option disponible : Importance.

SMTP2GO

Détails de l'interface de gestion SMTP2GO

Sengrig

Détails de l'interface de gestion de Sendgrid

Il faut indiquer dans le fichier de configuration cfgMail.txt (dans un ordre quelconque) :

  • Quelle est la valeur de la clé API utilisée pour l'envoi (clé ApiKeySMTP2GO pour SMTP2GO et ApiKeySendGrid pour Sendgrid).

Exemple de contenu de cfgMail.txt pour SMTP2GO >

// Seul ligne nécessaire (les autres seront ignorées)
ApiKeySMTP2GO:=api-987AB65CD6543210E1234F56G7H89I01

Exemple de contenu de cfgMail.txt pour Sengrid >

// Seul ligne nécessaire (les autres seront ignorées)
ApiKeySendGrid:=SG.a1BCdeFGH2iJKLm_NO3pQR.st4_5u_v67WXYZ8ABCdeF9GhIJK0M1N2oPqrS3Tuv4W

3. Le bouton Options e-mail permet l'affichage des options d'envoi disponibles pour les clients Outlook et CDO

La fenêtre suivante s'affiche

Écran de paramétrage des options d'envoi des mails
  1. Conserver la signature... : Permet de garder ou de supprimer la signature par défaut du compte d'envoi (Outlook).
  2. Niveau de confidentialité : Sélection d'un tag indiquant le niveau de confidentialité (Outlook, CDO).
  3. Utiliser les boutons de vote : Sélectionner ou saisir une liste de valeurs (séparateur ";") servant liste de choix (Outlook, CDO).
  4. Demander un accusé de réception : Le renvoi d'un accusé dépend du paramétrage du serveur de messagerie du destinataire (Outlook, CDO).
  5. Demander une confirmation de lecture : Le renvoi d'un accusé dépend du choix du destinataire du message (Outlook, CDO).
  6. Envoyer la réponse à : Mails (séparateur ";") à utiliser à la place du mail de l'expéditeur (Outlook).
  7. Ne pas envoyer avant : Date et heure (facultative) d'envoi du message. Nécessite un serveur Exchange ou de laisser Outlook ouvert ! (Outlook).
  8. Expire après : Date et heure (facultative) d'expiration du message (Outlook).
  9. Enregistrer une copie... : Par défaut coché, option permettant de garder une copie du message dans le dossier Éléments envoyés du compte servant à l'envoi (Outlook).
  10. Catégories : Permet d'ajouter une catégorisation (séparateur ";") pour être utilisé via une règle de classement automatique des messages par exemple (Outlook).
  11. Effacer tout : Bouton réinitialisant les valeurs de la fenêtre.
  12. Liste de champs classique.
2eme écran de l'outil pour le publipostage si génération d'e-mail
  1. Destination des documents créés : Sélection de la forme que prendra le document résultant de la fusion/fractionnement.
    • Option "Aucun" : Aucun document ne sera créé à partir du document de fusion !
      • Pour une utilisation "détournée" de l'outil (demande d'une utilisatrice).
      • La base de données liée est utilisée pour alimenter les informations des e-mails avec notamment la possibilité d'associer des pièces jointes liées aux destinataires.
    • Option "En corps du message (RTF)" : Le résultat de la fusion sera utilisé comme texte pour le corps du message.
      • Format assurant le minimum de pertes en termes de présentation par rapport au document de départ (plus fidèle).
      • Compatible seulement avec Outlook et peu de clients de messagerie peuvent le lire en dehors d'Outlook (pour les destinataires en réception).
      • Les pièces jointes sont présentées dans le corps du message.
        > Par défaut à la fin du message.
        > A la position du signet "AttPos" (Ruban Insertion>Signet pour le créer), s'il existe dans le document principal de fusion (celui avec les champs).
    • Option "En corps du message (HTML)" : Le résultat de la fusion sera utilisé comme texte pour le corps du message.
      • Pertes en termes de présentation par rapport au document de départ légèrement plus importantes.
      • Très bonne comptabilité.
      • Exécution plus lente (les images présentent dans le document, nécessitants une conversion, ont plus d'impacts sur le temps d'exécution) avec cette option.
    • Option "En pièce jointe PDF/Word" : Le résultat de la fusion sera mis en pièce jointe dans l'e-mail.
      • On devra générer/choisir un nom pour le fichier inséré en pièce jointe (voir plus bas).
      • On pourra rédiger le corps du message ou l'importer via un champ.

Remarque : La liste 6 permet de choisir une des options précédentes ou un champ contenant l'option à utiliser et ainsi être variable (par enregistrement).

  1. Sélection du compte expéditeur (DE) : celui servant à l'envoi.
    • Compte : Listes des adresses e-mail des comptes configurés dans Outlook.
    • Champ : Champ contenant l'adresse e-mail unique du compte de messagerie à utiliser (pouvant ainsi varier à chaque enregistrement).
  2. Sélection des destinataires : Pour remplir les listes A, CC, CCI désignant les destinataires des e-mails.
    • Les adresse e-mail des destinataires doivent être séparées par un point-virgule, que ce soit en saisie directe ou dans le champ de la base données utilisés.
    • Il est possible de mixer saisie manuelle des adresses, saisie des noms de champs entre accolades et cliquer-glisser du champ à partir de la liste (9).
    • Les noms de champ sont toujours interprétés, peu importe l'état de la case à cocher "Ne pas remplacer {Nom champ} par..." (12).
    • Il n'y a aucun contrôle de validité des adresses e-mails fournies pour l'envoi.
  3. Liste des champs de la source de données : pour référence ou pour réaliser un cliquer-glisser.
  1. Importance : La liste permet de choisir un des niveaux d'importance ou un champ contenant la valeur à utiliser et ainsi être variable (par enregistrement).
  2. Objet du message : Pour saisir de l'objet des messages envoyés.
    • S'il l'objet est vide, un espace sera inséré afin d'éviter des messages d'alerte des clients de messagerie.
  1. Ne pas remplacer {Nom champ} par... : Avec cette case à cocher désactivée, tout texte entre {accolades} sera interprété comme un nom de champ de la base données. Il sera alors remplacé par la valeur du champ (une sorte de 2eme publipostage 😁).
    • Cette fonction n'est pas active pour les listes A, CC, CCI (remplacement que la case soit coché ou non).
    • Exemple d'utilisation si NON coché avec l'objet du message : "Conclusions sur le dossier {ChNumDossier} pour {ChCivilite} {ChNom}" pourrait donner "Conclusions sur le dossier A450 pour Madame MARTIN".
  2. 14. 15. 16. Pièces jointes qui seront communes à tous les messages.
    • Bouton Ajouter (13) : Pour ajouter des pièces jointes à celles déjà présentes dans la liste.
      • Sélection multiple possible.
      • Si fichier sélectionné est déjà présent dans la liste alors il ne sera pas ajouté.
    • Bouton Retirer (14) : Pour supprimer les pièces jointes sélectionnées de la liste.
      • Sélection multiple possible.
    • Bouton Tout Retirer (15) : Pour supprimer toutes les pièces jointes de la liste.
    • Liste Champ Pièces jointes... (16) : Pour ajouter des pièces jointes via un champ de la base données.
      Elles pourront ainsi être spécifiques à chaque message.
      • Une valeur vide est présente en début de liste permettant d'annuler la précédente sélection d'un champ ou en utilisant la touche Supp du clavier.
      • Pour les valeurs du champ dans la base de données servant aux pièces jointes, séparer les différents chemins d'accès par un point-virgule.
      • Si le document est déjà présent en tant que pièce jointe, il ne sera pas ajouté une nouvelle fois.
  1. Bouton Envoyer les e-mails permettant la validation et l'envoi des e-mails.
  2. Bouton Fermer l'outil permettant de fermer directement les 2 fenêtres de l'outil.
  3. Bouton Effacer tout permettant d'effacer toutes les zones de saisie.
  4. Case à cocher Quitter après exécution : Pour fermer directement les 2 fenêtres de l'outil quand l'exécution est terminée.

Si une des options "En pièce jointe PDF" ou "En pièce jointe Word" a été sélectionnée, on accède à droite de la fenêtre à la zone de rédaction du corps du message.

2eme écran de l'outil pour le publipostage (suite)
  1. Format du message : On pourra choisir soit le format Texte brute ou le format HTML (format permettant une mise en forme).
    • La liste permet de choisir un des 2 formats ou un champ contenant la valeur à utiliser et ainsi être variable (par enregistrement).
  2. Zone de saisie directe du message : On pourra saisir ici le message sous forme d'un texte ou d'un code HTML.
    • Rappel : Si la case à cocher "Ne pas remplacer {Nom champ} par..." (12) est désactivée, tout texte entre {accolades} sera interprété comme un nom de champ de la base données et remplacé.
    • Exemples en mode HTML : "... la facture {ChNumFacture} d'un montant de <b>{chMontantFact} euros</b>...".
    • Cette saisie sera ignorée si un champ dans la liste Champ contenant le texte du message (23) est sélectionné.
  3. Champ contenant le texte du message : On peut importer le texte du message via un champ de la base données.
    • Si la case à cocher "Ne pas remplacer {Nom champ} par..." (12) est désactivée, le texte entre {accolades} renvoyé par le champ sera interprété comme un nom de champ de la base données et remplacé.
    • Une valeur vide est présente dans la liste de sélection du champ permettant d'annuler la précédente sélection d'un champ ou en utilisant la touche Supp du clavier.
    • Si un champ est sélectionné, la zone de saisie (22) sera inactive.
  4. Interpréter sa valeur comme un chemin d'accès : Permet de d'interpréter la valeur du champ de la liste Champ contenant le texte du message (23) comme un chemin d'accès à un fichier.
    • Format pris en charge : Texte (.txt), HTML (.html, .htm), CSV (.csv).
  5. Bouton Effacer permettant d'effacer la zone de saisie (22).
  6. Bouton Importer le message d'un fichier .txt ou .Html permettant d'importer le contenu d'un fichier Texte (.txt), HTML (.html, .htm), CSV (.csv) dans la zone de saisie (22).
  7. Zone Nom du fichier : Permet la saisie du nom du fichier PDF/Word résultant de la fusion/fractionnement.
    • Si la case à cocher "Ne pas remplacer {Nom champ} par..." (12) est désactivée, tout texte entre {accolades} sera interprété comme un nom de champ de la base données et remplacé.
    • Si le nom est vide (cas où il n'est constitué que d'un champ qui renvoie une valeur vide pour un des enregistrements), le nom utilisé sera "Document".
    • Le nom est limité en longueur en fonction de la longueur du chemin d'accès aux fichiers temporaires Windows.
  8. Les zones "Mot de passe accès en lecture*" et "Mot de passe accès en modification*" permettent de protéger les documents générés.
    • Il n'y a pas de contraintes de complexité sur les mots de passe.
    • Il n'y a pas une double saisie de contrôles pour valider les mots de passe.
    • Les mots de passe en lecture et en modification DOIVENT être différents.
    • La protection des fichiers PDF nécessite l'installation d'un programme supplémentaire (voir plus bas).
  9. Conserver les fichiers... Permet de conserver les fichiers générés pour la création de la pièce jointe.
    • Une destination de sauvegarde sera alors demandée à l'utilisateur (pas de contrôle de la présence préalable d'un fichier doublon dans le dossier, celui-ci sera écrasé).
  10. L'option "Le texte de la zone "Nom des fichiers" représente le chemin de sauvegarde complet" permet de préciser via la zone Nom de fichier (27), l'emplacement et le nom de sauvegarde des fichiers (chemin d'enregistrement pouvant ainsi être variable).
    Exemple : C:\Prospect\{Campagne}\Courrier_{Nom}
  11. Ouvrir le dossier cible... : Permet d'afficher le contenu du dossier contenant les fichiers générés (dossier précisé par l'utilisateur après validation du bouton (17)).

Autres fonctionnalités

Protection des PDF avec mot de passe

Word ne gérant pas cette fonctionnalité pour les fichiers PDF, je me suis basé sur l'utilisation de PDFTK_Server (https://www.pdflabs.com/tools/pdftk-server).

Il suffit de l'installer et si nécessaire (emplacement d'installation non standard), ajouter son emplacement dans la variable d'environnement Windows PATH ou via indiquer son chemin d'accès via un fichier de réponses ou via l'interface utilisateur (à chaque utilisation dans ce dernier cas).

Utilisation d'un fichier de réponses (Mode semi-autonome, mode autonome)

Le fichier de réponses permet un pré-remplissage des informations nécessaires à l'exécution de l'outil (remplissage des zones de saisie et paramétrage des options). Il peut même déclencher la validation/exécution puis la fermeture de l'outil.
Il est constitué d'une série de paires de clé-valeur (par exemple "Client:=outlook").

L'outil est fait pour utiliser un fichier de réponse selon 4 modes :

  • Modes automatiques.
    Le chargement du fichier est fait sans l'intervention de l'utilisateur et l'exécution et la fermeture de l'outil peut même être déclencher.
    1. Via un fichier ayant pour nom "ResponseFile.txt", dans le dossier d'installation : Pour ainsi être commun à plusieurs publipostages.
    2. Via un fichier ayant le même nom que le document Word actif avec l'extension .txt, dans le dossier d'installation : Pour ainsi être spécifique à un publipostage/document.
      Remarque : Le fichier de réponses "ResponseFile.txt" du cas (1) est prioritaire sur ceux du cas (2).
  • Modes semi-automatiques.
    Le chargement du fichier de réponses est fait avec l'intervention de l'utilisateur.
    1. Via un fichier ayant été lié au préalable au document principal de fusion (celui avec les champs) : Pour être ainsi spécifique à un publipostage/document.
      Par rapport au mode2, cela donne de la liberté quant au nom et à l'emplacement du fichier de réponses.
    2. Via un fichier à sélectionner/charger à chaque exécution.
Boutons de gestions des fichiers de réponses
1er écran de l'outil pour le publipostage
  1. Permet de connecter un fichier de réponse au document sélectionné dans la 1ère liste déroulante (Fond jaune). Il faudra enregistrer le document pour mémoriser la connexion.
  2. Pour déconnecter le fichier de réponse au document sélectionné dans la 1ère liste déroulante (Fond jaune). Il faudra enregistrer le document pour mémoriser la déconnexion.
  3. Pour appliquer les valeurs du fichier de réponses connecté et lancer l'exécution.
  4. Pour sélectionner un fichier de réponses, appliquer ses valeurs puis lancer l'exécution. Cette connexion ne sera pas mémorisée lors d'une utilisation ultérieure de l'outil.

Remarque :

  • Si le fichier de réponse lié, affiché dans la zone d'information sous les boutons, n'existe pas, une alerte est affichée et le bouton 3 n'est pas fonctionnel.
Contenu du fichier de réponses

Illustration avec un fichier (utilisation de 22 paramètres sur les 42 disponibles) :

//Fichier de réponses
//===================
Doc1:=DocPrincFusion.docx
Doc2:=
OutPut1:=mail
FileNameOutPut:=C:\Prospect\{Campagne}\Courrier_{Nom}
//si FileNameAsPath = true, FolderOutPut n'est plus utilisé
FileNameAsPath:=true
ReadPassword:={ReadPass}
GoNext:=true
Close:=true

Client:=Outlook
WebService:=SMTP2GO
OutlookOffLine:=true
AddSignature:=false
Voting:=bleu;rouge;vert
Categories:={Categorie}

Output2:=pdf
SenderType:=Account
Sender:=bidon@1forme.fr.com
To:={A}
Object:=Projet-{NomProjet}
MessageFormat:=html
MessageTxt:={CorpsHtml}
SendMail:=true
KeepFiles:=true
  • Des commentaires peuvent être ajoutés dans le fichier de réponses, ils doivent commencer par // (lignes 1, 2, 7).
    • Ainsi pour ne pas prendre en compte une clé de réponse, on peut soit la supprimer, soit la mettre en commentaire, soit laisser sa valeur vide.
  • Des lignes vides sont autorisées dans le fichier de réponses (lignes 12, 19, 29).
  • Des clés peuvent être présentes dans le fichier de réponses et ne pas avoir de valeurs (ligne 4).
  • Si la clé de réponse est sans objet/inutile dans le traitement tel que paramétré par le fichier de réponses, elle sera ignorée (ligne 14).
  • L'ordre des clés n'a pas d'importance.
  • Attention à la casse de nom de champ (différenciation CAPITALE-MAJUSCULE/minuscule).
  • L'envoi de mail par le client CDO ou par un service web offrent moins d'options que par Outlook.

Interprétation des autres lignes de l'exemple :

  • À partir de DocPrincFusion.docx (ligne 3), on va générer des mails (ligne 5) avec Outlook (ligne 13).
  • Les documents fusionnés seront en pièce jointe au format PDF (ligne 20) et protégés par un mot de passe (ligne 9) spécifique à chaque fichier.
  • Le chemin de sauvegarde des fichiers PDF, généré par la ligne 6 (fonctionnel grâce à la ligne 8), est inutile dans le cas d'un simple envoi de mail (utilisation de fichiers temporaires Windows) mais l'utilisateur voulant garder une copie des PDF hors d'Outlook a forcé leur sauvegarde avec la ligne 28.
  • Pour les mails, 3 boutons de vote sont activés (ligne 17), la signature automatique est supprimée et une catégorie variable est appliquée (via l'utilisation d'une règle automatique, il sera ainsi facile de générer un classement pour la copie du message dans une arborescence de dossier dans Outlook).
  • Outlook passera en mode Hors connexion, un dernier contrôle sur les messages pourra ainsi être effectué avant l'envoi (ligne 15).
  • Les lignes 21 et 22 servent à indiquer le compte d'envoi, la ligne 23 le destinataire.
  • Le message sera au format HTML et le texte sera récupéré dynamiquement.
  • La ligne 10 permet de valider le premier écran, la ligne 27 de valider le deuxième.
  • La ligne 11 force la fermeture de l'outil à la fin du traitement.

Références pour le fichier de réponses (à copier-coller pour créer votre fichier de réponses)

Version commentée avec exemples (cliquer pour dérouler).
//	=== Fichier de réponses ===
//	--- Écran 1 ---
//	Lang > [FR, EN] > Langue de l'interface - écran 1
Lang:=FR
//	Doc1 > Nom du document dans la 1ère liste déroulante (fond jaune) - écran 1
Doc1:=DocPrincResFusin.docx
//	Doc2 > Nom du document dans la 2ème liste déroulante - écran 1
Doc2:=
//	OutPut1 > [Mail, PDF, Word] > Type de sortie - écran 1
OutPut1:=Mail
//	GoNext >[True, False] > Valider l'écran 1 sinon l'exécution sera bloquée à l'écran 1                     > 
GoNext:=true

//	--- Commun Écrans 1 et 2 ---
//	Subtitue > [True, False] > Remplacer les noms des champs par leur valeur - écran 1 et 2
Subtitue:=false
//	FolderOutPut > Texte / Champ > Chemin d'accès du dossier de sauvegarde des fichiers générés
//              > Inutile dans le cas Mails et si FileNameAsPath = True
FolderOutPut:=C:\MesDoc\Projet
//	FileNameOutPut > Texte / Champ > Nom des fichiers générés - écran 1, en pièce jointe - écran 2
FileNameOutPut:=Devis {ChNom}
//	FileNameAsPath > [True, False] > Interprétation de FileNameOutPut comme un chemin complet - écran 1 et 2
//                                 > Si True, FolderOutPut et KeepFile seront ignorés 
FileNameAsPath:= False
//	ReadPassword > Texte / Champ > Mot de passe d'accès en lecture/ouverture
ReadPassword:=Paul*9$A_5
//	WritePassword > Texte / Champ > Mot de passe d'accès en modification
WritePassword:={ChampPassModif}
//	PdfTkPath > Texte > Chemin d'accès à PdfTk
PdfTkPath:=C:\MesDoc\Projet
//	OpenFolder > [True, False] > Ouvrir le dossier contenant les fichiers - écran 1 et 2
OpenFolder:=True
// 	Close > [True, False] > Ferme la/les fenêtres de l'outil - écran 1 et 2
//                        > Ignoré si GoNext:=False ou SendMail:=False
Close:=false

//	--- Écran 2 ---
//	Client > [Outlook, CDO, WebService] > Client utilisé pour l'envoi - écran 2
Client:=outlook
//	WebService > [SMTP2GO, SendGrid, Champ] > Service web à utiliser - écran 2
WebService:=SMTP2GO
//	OutlookOffLine > [True, False] > Passer Outlook en mode hors connexion - écran 2
OutlookOffLine:=True
//	Output2 > [RTF, HTML, PDF, DOCX, Champ, None] > Format des documents générés par publipostage - écran 2
//                      None = Aucun document
Output2:=pdf
//	SenderType > [Field, Account] > Origine de l'information sur l'expéditeur (DE) - écran 2
SenderType:=Account
//	Sender > Texte / Champ > E-mail de l'expéditeur (DE) ou nom du champ contenant son adresse - écran 2
//                         > La valeur de SenderMail du fichier cfgMail.txt est prioritaire sur Sender
//                          pour les mails via CDO ou ServiceWeb
Sender:=xxx@1forme.fr
//	Importance > [True, False, Champ] > Passage du message en importance haute - écran 2
Importance:=True
//	To, CC, CCI > Texte / Champ > E-mail des destinataires ou nom des champs contenant leurs adresses- écran 2
To:={A};xxx@gmail.com
CC:=
CCI:=
//	Object > Texte / Champ > Objet du message - écran 2
Object:=Conclusions sur le dossier {ChNumDossier} pour {ChCivilite} {ChNom}
//	AttchtList > Texte> Liste des documents à ajouter en pièce jointe - écran 2
AttchtList:=C:\MesDoc\Document1.pdf;C:\MesDoc\Document2.pdf
//	AttchtField > Champ > Nom du champ contenant la liste des documents à ajouter en pièce jointe - écran 2
AttchtField:={chPJ}
//	MessageFormat > [Text, HTML, Champ] > Format des messages envoyés - écran 2
MessageFormat:=html
//	MessageTxt > Texte / Champ > Texte du message - écran 2
MessageTxt:=Bonjour <b>Monsieur</b> Martin
//	MessageFieldAsPath > [True, False] > Interpréter le contenu de MessageField comme un chemin d'accès - écran 2
MessageFieldAsPath:=true
//	KeepFiles > [True, False, Champ] > Conserver les fichiers générés - écran 2
//                                   > Ignoré si FileNameAsPath = True (forcément à True)
KeepFiles:=false
//	SendMail > [True, False] > Valiser l'envoi des e-mails - écran 2
SendMail:=true

//	--- Écran Options ---
//	AddSignature > [True, False, Champ] > Ajouter une signature aux messages - écran 2
AddSignature:=True
//	Sensivity > [Normal, Personnel, Personal, Privé, Private, Confidentiel, Confidential, Champ]
//           > Niveau de confidentialité
Sensivity:=Confidentiel
//	Voting > Texte / Champ > Valeurs des boutons de vote
Voting:=Choix1;Choix2;Choix3...             
//	Receipt > [True, False, Champ] > Accusé réception (retour à la discrétion du serveur)
Receipt:=True
//	ReadReceipt > [True, False, Champ] > Accusé de lecture (retour à la discrétion du destinataire)
ReadReceipt:=True
//	RepliesTo> [Texte, Champ] > Qui sera indiqué en adresse de retour (si vide, c'est l'expéditeur)
RepliesTo:=retour@bidon.fr
//	DeliverBefore > [Date, Champ] > Date d'envoi
DeliverBefore:=4/6/2026 12:30
//	ExpireDate > [Date, Champ] > Date d'expiration
ExpireDate:={DtExpire}
//	Categories > [Texte, Champ] 
Categories:= Mailing;Client;{Nom}
//	SaveCopy > [True, False, Champ] > Copie des messages dans le dossier "Éléments envoyés", par défaut à True
SaveCopy:=True
Version brute (cliquer pour dérouler).
Lang:=
Doc1:=
Doc2:=
OutPut1:=
GoNext:=
Subtitue:=
FolderOutPut:=
FileNameOutPut:=
FileNameAsPath:=
ReadPassword:=
WritePassword:=
FdfTkPath:=
OpenFolder:=
Close:=
Client:=
WebService:=
OutlookOffLine:=
Output2:=
SenderType:=
Sender:=
Importance:=
To:=
CC:=
CCI:=
Object:=
AttchtList:=
AttchtField:=
MessageFormat:=
MessageTxt:= 
MessageFieldAsPath:=
KeepFiles:=
SendMail:=
AddSignature:=
Sensivity:=
Voting:=
Receipt:=
ReadReceipt:=
RepliesTo:=
DeliverBefore:=
ExpireDate:=
Categories:=
SaveCopy:=

Remarques

> Pour les erreurs liées à des valeurs non valides fournies par les champs de la base de données, comme :

  • Destinataire vide,
  • Chemin d'accès à la pièce jointe erroné,
  • Adresse e-mail d'expéditeur vide,
  • Adresse e-mail d'expéditeur ne correspondant pas à un des comptes d'envoi configurés dans Outlook.

Un fichier journal d'erreurs sera créé dans les fichiers temporaires de Windows et sera ouvert à la fin de l'exécution.
Un message, à la fin du traitement, informe l'utilisateur de son bon déroulement et de l'éventuelle génération du fichier journal d'erreur.

> La taille des mails et le nombre de mails envoyés par Jour/Mois est limité par le serveur SMTP utilisé.

> Si trop de mail sont envoyés à un même destinataire, l'expéditeur peut être blacklisté (plus avec les services web).

> L'exécution est assez lente (elle dépend du nombre d'enregistrement, du volume et de la composition du document de départ) !

Conclusions

J'espère que cet outil pourra vous être utile en palliant certains manques dans Word.

Si vous trouvez des erreurs, n'hésitez pas à m'en faire part. L'outil devenant plus complexe avec plus de combinaison d'utilisations, il doit surement y en avoir 😔.

De même, si vous avez des idées d'améliorations, n'hésitez pas à m'en faire part, j'en étudierais la faisabilité.

Je rappelle que cet outil est fourni "tel quel", sans aucune garantie de bon fonctionnement (voir https://1forme.fr/mentions-legales/).

Merci pour votre attention bienveillante.

Article intéressant ?

Cliquez sur une étoile pour noter cet article !

Note moyenne 5 / 5. Nombre de votes : 2

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Nous sommes désolés que cet article ne vous ait pas été utile !

Améliorons cet article !

Dites nous comment nous pouvons améliorer cet article ?

Publications similaires

Un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *