> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/documentations/multigest/administration/portails-modeles-mails.md).

# Portails — Modèles de mails

Les e-mails envoyés par le portail de diffusion (invitations, rappels, notifications) sont entièrement personnalisables via des modèles HTML. Cette page décrit la création, la mise en page et le déploiement de ces modèles, ainsi que les champs de publipostage disponibles.

**Accès :** Fichiers HTML déposés dans le répertoire `mailsDiff/` du serveur Multigest.

***

## Vue d'Ensemble

Par défaut, Multigest envoie des e-mails de notification avec une mise en forme standard. Pour personnaliser l'apparence (logo, charte graphique, contenu), vous créez des fichiers HTML de remplacement que vous déposez dans le répertoire dédié.

### Types d'E-mails Personnalisables

| Type d'e-mail                     | Déclencheur                                             | Destinataire                       |
| --------------------------------- | ------------------------------------------------------- | ---------------------------------- |
| **Invitation initiale**           | Premier ajout d'un contact à une liste de diffusion     | Destinataire externe               |
| **Notification de disponibilité** | Ajout de nouveaux documents à une liste                 | Destinataire de la liste           |
| **Rappel de document**            | Document non consulté après X jours                     | Destinataire n'ayant pas consulté  |
| **Document expiré**               | Liste de diffusion expirée avec documents non consultés | Destinataire, expéditeur           |
| **Notification expéditeur**       | Premier accès d'un destinataire à un document           | Expéditeur (utilisateur Multigest) |

***

## Structure d'un Modèle HTML

Un modèle d'e-mail est un fichier HTML standard enrichi de **champs de publipostage** (variables entre doubles crochets) que Multigest remplace automatiquement lors de l'envoi.

### Structure Minimale

```html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Notification Portail de Diffusion</title>
</head>
<body>
  <p>Bonjour [[CONTACT_PRENOM]] [[CONTACT_NOM]],</p>

  <p>Des documents sont disponibles pour vous sur le portail de diffusion.</p>

  <p>
    <a href="[[LIEN_PORTAIL]]">Accéder au portail</a>
  </p>

  <p>Cordialement,<br>[[EXPEDITEUR_NOM]]</p>
</body>
</html>
```

***

## Champs de Publipostage

Les champs disponibles varient selon le **mode de connexion** configuré dans `webserveur.ini` (`PORTAIL_DIFF_CONN=0` pour identifiants, `PORTAIL_DIFF_CONN=1` pour lien de session).

### Champs Communs (Tous Modes)

| Variable                    | Valeur insérée                                                     |
| --------------------------- | ------------------------------------------------------------------ |
| `[[CONTACT_NOM]]`           | Nom du destinataire                                                |
| `[[CONTACT_PRENOM]]`        | Prénom du destinataire                                             |
| `[[CONTACT_MAIL]]`          | Adresse e-mail du destinataire                                     |
| `[[DIFFUSION_TITRE]]`       | Nom de la liste de diffusion                                       |
| `[[DIFFUSION_COMMENTAIRE]]` | Commentaire saisi par l'expéditeur lors de la création de la liste |
| `[[EXPEDITEUR_NOM]]`        | Nom complet de l'utilisateur Multigest ayant créé la liste         |
| `[[EXPEDITEUR_MAIL]]`       | Adresse e-mail de l'expéditeur                                     |
| `[[DATE_EXPIRATION]]`       | Date d'expiration de la liste (si durée limitée)                   |

### Champs Spécifiques — Mode Identifiants (`PORTAIL_DIFF_CONN=0`)

| Variable            | Valeur insérée                                                       |
| ------------------- | -------------------------------------------------------------------- |
| `[[CONTACT_LOGIN]]` | Identifiant de connexion du destinataire                             |
| `[[CONTACT_MDP]]`   | Mot de passe généré (uniquement dans l'e-mail d'invitation initiale) |
| `[[URL_PORTAIL]]`   | URL de la page de connexion du portail                               |

{% hint style="warning" %}
Le champ `[[CONTACT_MDP]]` ne doit apparaître que dans le modèle d'**invitation initiale** — jamais dans les rappels ou notifications ultérieures, pour des raisons de sécurité.
{% endhint %}

### Champs Spécifiques — Mode Lien de Session (`PORTAIL_DIFF_CONN=1`)

| Variable           | Valeur insérée                                                          |
| ------------------ | ----------------------------------------------------------------------- |
| `[[LIEN_SESSION]]` | Lien de connexion automatique unique pour ce destinataire               |
| `[[LIEN_PORTAIL]]` | URL de la page de connexion standard (alternative sans lien de session) |

{% hint style="info" %}
En mode lien de session, `[[LIEN_SESSION]]` est l'élément central du modèle. Ce lien est unique par destinataire et par envoi — il ne doit pas être copié entre destinataires.
{% endhint %}

### Champs de Rappel (E-mails de Relance)

| Variable              | Valeur insérée                                                                 |
| --------------------- | ------------------------------------------------------------------------------ |
| `[[DOC_RECALLDOC]]`   | Lien direct vers un document non consulté (utilisé dans les e-mails de rappel) |
| `[[DOC_EXPIREDOC]]`   | Nom du document ayant expiré sans consultation                                 |
| `[[NB_DOCS_ATTENTE]]` | Nombre de documents non encore consultés dans la liste                         |

***

## Créer et Déployer un Modèle

### Étape 1 — Créer le fichier HTML

Créez votre fichier HTML dans un éditeur de texte ou un éditeur HTML. Respectez les points suivants :

* Encodage : **UTF-8**
* Intégrez les styles CSS **en ligne** (`style="..."`) — les feuilles de style externes ne sont pas supportées par tous les clients mail
* Évitez JavaScript — les clients mail le bloquent systématiquement
* Testez l'affichage dans les principaux clients mail (Outlook, Gmail, Apple Mail) avant de déployer

### Étape 2 — Nommer le fichier

Le nom du fichier détermine à quel type d'e-mail il correspond. Respectez la convention de nommage de Multigest :

| Nom du fichier       | Type d'e-mail                                                  |
| -------------------- | -------------------------------------------------------------- |
| `invitation.html`    | E-mail d'invitation initiale                                   |
| `notification.html`  | Notification de nouveaux documents disponibles                 |
| `rappel.html`        | E-mail de rappel pour documents non consultés                  |
| `expiration.html`    | Notification de documents expirés                              |
| `premier_acces.html` | Notification à l'expéditeur du premier accès d'un destinataire |

{% hint style="info" %}
Si un fichier de modèle est absent pour un type d'e-mail donné, Multigest utilise le modèle par défaut intégré. Vous n'êtes pas obligé de personnaliser tous les types d'e-mails.
{% endhint %}

### Étape 3 — Déposer sur le serveur

Copiez le fichier HTML dans le répertoire `mailsDiff/` du serveur Multigest :

```
[INSTALLDIR_MULTIGEST]\mailsDiff\
```

Aucun redémarrage de service n'est nécessaire — Multigest lit les fichiers à chaque envoi.

### Étape 4 — Tester

Créez une liste de diffusion de test avec votre propre adresse e-mail comme destinataire pour vérifier le rendu réel du modèle.

***

## Exemple de Modèle Complet

Modèle d'invitation initiale en mode lien de session, avec logo et charte graphique :

```html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
</head>
<body style="font-family: Arial, sans-serif; color: #333; margin: 0; padding: 0;">

  <!-- En-tête avec logo -->
  <table width="100%" cellpadding="0" cellspacing="0"
         style="background-color: #003366; padding: 20px;">
    <tr>
      <td>
        <img src="https://votre-serveur.fr/logo.png"
             alt="Logo" height="50" style="display:block;">
      </td>
    </tr>
  </table>

  <!-- Corps du message -->
  <table width="600" cellpadding="20" cellspacing="0"
         style="margin: 20px auto;">
    <tr>
      <td>
        <p>Bonjour <strong>[[CONTACT_PRENOM]] [[CONTACT_NOM]]</strong>,</p>

        <p>[[EXPEDITEUR_NOM]] vous a partagé des documents
           via le portail de diffusion :</p>

        <p style="font-style: italic; color: #555;">
          [[DIFFUSION_COMMENTAIRE]]
        </p>

        <p>
          <a href="[[LIEN_SESSION]]"
             style="background-color: #003366; color: white;
                    padding: 10px 20px; text-decoration: none;
                    border-radius: 4px; display: inline-block;">
            Accéder à mes documents
          </a>
        </p>

        <p style="font-size: 12px; color: #888;">
          Ce lien est personnel et ne doit pas être partagé.<br>
          [[DATE_EXPIRATION]]
        </p>
      </td>
    </tr>
  </table>

  <!-- Pied de page -->
  <table width="100%" cellpadding="10" cellspacing="0"
         style="background-color: #f5f5f5; border-top: 1px solid #ddd;">
    <tr>
      <td style="font-size: 11px; color: #999; text-align: center;">
        Ce message a été envoyé automatiquement par le portail de diffusion Multigest.
      </td>
    </tr>
  </table>

</body>
</html>
```

***

## Questions Fréquentes

<details>

<summary>Les images dans les e-mails s'affichent-elles correctement ?</summary>

Les images référencées par URL (`<img src="https://...">`) s'affichent si le destinataire autorise les images dans son client mail. Les images intégrées en base64 sont supportées mais alourdissent l'e-mail. Préférez des URL absolues vers des ressources hébergées sur votre serveur ou un CDN.

</details>

<details>

<summary>Peut-on avoir un modèle différent par armoire ou par liste de diffusion ?</summary>

Non. Le système de modèles de Multigest applique un modèle par type d'e-mail, globalement. Si vous avez besoin de modèles distincts selon le contexte, cela nécessite une personnalisation avancée — contactez le support Efalia.

</details>

<details>

<summary>Le champ [[CONTACT_MDP]] apparaît vide dans l'e-mail — pourquoi ?</summary>

`[[CONTACT_MDP]]` n'est renseigné que lors de l'**invitation initiale** d'un nouveau contact. Pour les envois suivants (rappels, notifications), il reste vide pour des raisons de sécurité. Assurez-vous que ce champ n'est utilisé que dans le modèle `invitation.html`.

</details>

<details>

<summary>Peut-on mettre des accents et caractères spéciaux dans le modèle ?</summary>

Oui, à condition que le fichier soit enregistré en **UTF-8** et que la balise `<meta charset="UTF-8">` soit présente dans le `<head>`. Sans cela, les accents peuvent s'afficher comme des caractères parasites dans certains clients mail.

</details>

***

**Pour aller plus loin :**

* [Portails — Administration](/documentations/multigest/administration/portails-administration.md)
* [Options générales](/documentations/multigest/administration/options-generales.md)
* [Partager des documents](/documentations/multigest/utilisation/partager-documents.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.efalia.com/documentations/multigest/administration/portails-modeles-mails.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
