> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/fr/dev-reference/report-functions/get-rjrbbrandingmailparams.md).

# Get-RjRbBrandingMailParams

Résolvez les paramètres du Tenant RJReport.Branding en paramètres prêts à l’emploi pour Send-RjRbReportEmail.

## Vue d’ensemble

`Get-RjRbBrandingMailParams` fait le lien entre les paramètres centraux [Paramètres de branding des e-mails](/fr/automatisation/runbooks/runbook-report-settings.md#email-branding-optional) et [`Send-RjRbReportEmail`](/fr/dev-reference/report-functions/send-rjrbreportemail.md): les paramètres contiennent **URL**, la fonction d’envoi attend **des chemins de fichiers locaux**. Cette fonction télécharge les images configurées, les valide et renvoie une hashtable qui peut être splattée directement dans l’appel d’envoi.

> **Disponible à partir de RealmJoin.RunbookHelper 0.8.9.** Les versions précédentes du runbook intégraient cette logique sous forme d’assistant inline portant le même nom ; ces copies peuvent être supprimées une fois que le compte Automation exécute la version 0.8.9 ou ultérieure.

Règles de conception :

* **Ne fait jamais échouer le rapport.** Tout problème — paramètre vide, URL non HTTPS, téléchargement échoué, fichier trop volumineux, image invalide, couleur mal formée — génère un avertissement et l’omission de cette seule clé. L’e-mail est alors rendu avec le RealmJoin par défaut correspondant.
* **Ne renvoie que ce qui a pu être résolu.** La hashtable renvoyée contient uniquement les clés qui ont réussi, donc son splatting n’écrase jamais une valeur par défaut avec une valeur vide.
* **Un téléchargement par exécution.** Appelez-la une seule fois et réutilisez le résultat pour chaque e-mail que le runbook envoie — y compris à l’intérieur de boucles qui notifient de nombreux utilisateurs.

## Démarrage rapide

```powershell
$brandingMailParams = Get-RjRbBrandingMailParams `
    -HeaderImageUrl $BrandingHeaderImageUrl `
    -FooterImageUrl $BrandingFooterImageUrl `
    -FooterLink     $BrandingFooterLink `
    -AccentColor    $BrandingAccentColor `
    -TextColor      $BrandingTextColor

Send-RjRbReportEmail `
    -EmailFrom       $EmailFrom `
    -EmailTo         $EmailTo `
    -Subject         $Subject `
    -MarkdownContent $reportMd `
    @brandingMailParams
```

En l’absence de branding configuré, `$brandingMailParams` est une hashtable vide et l’appel se comporte exactement comme si le paramètre avait été omis.

## Paramètres

Tous les paramètres sont facultatifs — la fonction est conçue pour être appelée avec tout ce que le tenant a configuré.

| Paramètre        | Type          | Par défaut | Description                                                                                                                                     |
| ---------------- | ------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `HeaderImageUrl` | `chaîne`      | —          | URL HTTPS publique de l’image d’en-tête (`RJReport.Branding.HeaderImageUrl`).                                                                   |
| `FooterImageUrl` | `chaîne`      | —          | URL HTTPS publique de l’image de pied de page (`RJReport.Branding.FooterImageUrl`).                                                             |
| `FooterLink`     | `chaîne`      | —          | URL cible de l’image de pied de page (`RJReport.Branding.FooterLink`). Transmise telle quelle, non validée.                                     |
| `AccentColor`    | `chaîne`      | —          | Couleur d’accentuation (`RJReport.Branding.AccentColor`). Transmise telle quelle ; le format hexadécimal est validé par `Send-RjRbReportEmail`. |
| `TextColor`      | `chaîne`      | —          | Couleur du texte (`RJReport.Branding.TextColor`). Même traitement que `AccentColor`.                                                            |
| `TimeoutSec`     | `entier`      | `30`       | Délai de téléchargement par image.                                                                                                              |
| `MaxImageBytes`  | `entier long` | `200 Ko`   | Taille maximale d’image acceptée. Les images de branding partagent la limite d’environ 4 Mo `sendMail` avec les pièces jointes du rapport.      |

## Sorties

Une `[hashtable]` contenant uniquement les clés résolues avec succès :

| Clé           | Valeur                                              |
| ------------- | --------------------------------------------------- |
| `HeaderImage` | Chemin local de l’image d’en-tête téléchargée       |
| `FooterImage` | Chemin local de l’image de pied de page téléchargée |
| `FooterLink`  | Lien de pied de page tronqué                        |
| `AccentColor` | Couleur d’accentuation tronquée                     |
| `TextColor`   | Couleur du texte tronquée                           |

Chaque clé correspond à un paramètre de `Send-RjRbReportEmail`, ce qui rend le splatting sûr.

## Validation

Chaque image passe par les vérifications suivantes avant d’être acceptée :

| Vérification         | Motif de rejet                                                                                                                                                                       |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Schéma d’URL         | Seul `https` est accepté — les octets de l’image se retrouvent dans le courrier de l’entreprise, donc HTTP simple est refusé.                                                        |
| Téléchargement       | Les réponses non 2xx, les expirations de délai et les erreurs réseau sont capturées ; le corps de réponse d’une erreur de stockage n’est pas silencieusement traité comme une image. |
| Taille               | Les fichiers vides et les fichiers plus volumineux que `MaxImageBytes` (par défaut 200 Ko).                                                                                          |
| Signature du fichier | Les premiers octets doivent identifier un PNG, JPEG ou GIF. Une page d’erreur HTML enregistrée sous un `.png` nom est rejetée ici.                                                   |

Le fichier temporaire reçoit l’extension correspondant à son **détecté** format, car `Send-RjRbReportEmail` en déduit le type de contenu de la pièce jointe — une URL sans extension de fichier, ou avec une extension trompeuse, fonctionne donc correctement.

## Notes de comportement

### Hébergement des images

L’URL doit seulement être accessible depuis le bac à sable Azure Automation. Deux schémas courants :

* **Blob public ou CDN** — le plus simple, mais les images sont lisibles par n’importe qui.
* **Conteneur privé avec un SAS Token dans l’URL** — le conteneur reste privé et seuls les détenteurs du lien peuvent le lire. N’oubliez pas que l’expiration du SAS Token met fin silencieusement au branding : une fois expiré, les rapports continuent d’arriver avec les valeurs par défaut de RealmJoin et la raison n’est visible qu’en tant qu’avertissement dans le journal du job.

### Nettoyage du fichier temporaire

Les images téléchargées sont écrites dans le répertoire temporaire du bac à sable. Le bac à sable est supprimé après l’exécution, donc le nettoyage est facultatif — mais les runbooks dotés d’une section de nettoyage explicite doivent les supprimer après le dernier e-mail :

```powershell
foreach ($brandingKey in @('HeaderImage', 'FooterImage')) {
    if ($brandingMailParams -and $brandingMailParams.ContainsKey($brandingKey) -and (Test-Path -LiteralPath $brandingMailParams[$brandingKey])) {
        Remove-Item -LiteralPath $brandingMailParams[$brandingKey] -Force -ErrorAction SilentlyContinue
    }
}
```

### Diagnostic d’un branding qui n’apparaît pas

Lorsqu’un rapport arrive avec les graphismes par défaut alors que le branding est configuré, le journal du job identifie l’étape qui a échoué :

| Entrée du journal                                           | Cause                                                                                                                                    |
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Aucune `Branding :` entrée du tout                          | Les paramètres n’ont jamais atteint le runbook — vérifiez le JSON de personnalisation et si le portail connaît cette version du runbook. |
| `Seules les URL HTTPS sont prises en charge`                | L’URL utilise `http://`.                                                                                                                 |
| Une erreur de stockage telle que `PublicAccessNotPermitted` | La requête est arrivée sans authentification — le SAS Token manque dans l’URL, souvent parce qu’il a été tronqué lors de la copie.       |
| `dépasse la limite … pour les images d’e-mail intégrées`    | Le fichier est plus volumineux que `MaxImageBytes`.                                                                                      |
| `n’est pas une image PNG, JPEG ou GIF`                      | Le téléchargement a renvoyé autre chose qu’une image, généralement une page d’erreur.                                                    |

## Voir aussi

* [Send-RjRbReportEmail](/fr/dev-reference/report-functions/send-rjrbreportemail.md) — le consommateur des paramètres renvoyés.
* [Paramètres du rapport du runbook](/fr/automatisation/runbooks/runbook-report-settings.md#email-branding-optional) — configuration des `RJReport.Branding.*` paramètres en tant qu’administrateur.


---

# 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://docs.realmjoin.com/fr/dev-reference/report-functions/get-rjrbbrandingmailparams.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.
