> 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/es/dev-reference/report-functions/get-rjrbbrandingmailparams.md).

# Get-RjRbBrandingMailParams

Resuelve la configuración del inquilino de RJReport.Branding en parámetros listos para usar para Send-RjRbReportEmail.

## Resumen

`Get-RjRbBrandingMailParams` cierra la brecha entre la configuración central [de marca de correo electrónico](/es/automatizacion/runbooks/runbook-report-settings.md#email-branding-optional) y [`Send-RjRbReportEmail`](/es/dev-reference/report-functions/send-rjrbreportemail.md): las configuraciones contienen **URL**, la función de envío espera **rutas de archivos locales**. Esta función descarga las imágenes configuradas, las valida y devuelve una hashtable que puede expandirse directamente en la llamada de envío.

> **Disponible en RealmJoin.RunbookHelper 0.8.9.** Las versiones anteriores del runbook incluían esta lógica como un helper en línea con el mismo nombre; esas copias pueden eliminarse una vez que la Automation Account ejecute 0.8.9 o posterior.

Reglas de diseño:

* **Nunca hace fallar el informe.** Cualquier problema — configuración vacía, URL no HTTPS, descarga fallida, archivo demasiado grande, imagen inválida, color mal formado — genera una advertencia y la omisión de esa única clave. Luego, el correo se renderiza con el valor predeterminado correspondiente de RealmJoin.
* **Devuelve solo lo que se resolvió.** La hashtable devuelta contiene solo las claves que se resolvieron correctamente, por lo que expandirla nunca sobrescribe un valor predeterminado con un valor vacío.
* **Una descarga por ejecución.** Llámalo una vez y reutiliza el resultado para cada correo electrónico que envíe el runbook, incluso dentro de bucles que notifican a muchos usuarios.

## Inicio rápido

```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
```

Sin ninguna marca configurada, `$brandingMailParams` es una hashtable vacía y la llamada se comporta exactamente como si se hubiera omitido el parámetro.

## Parámetros

Todos los parámetros son opcionales: la función está diseñada para llamarse con lo que sea que el tenant tenga configurado.

| Parámetro        | Tipo     | Predeterminado | Descripción                                                                                                                                |
| ---------------- | -------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `HeaderImageUrl` | `string` | —              | URL pública HTTPS de la imagen de encabezado (`RJReport.Branding.HeaderImageUrl`).                                                         |
| `FooterImageUrl` | `string` | —              | URL pública HTTPS de la imagen de pie de página (`RJReport.Branding.FooterImageUrl`).                                                      |
| `FooterLink`     | `string` | —              | URL de destino de la imagen de pie de página (`RJReport.Branding.FooterLink`). Se pasa tal cual, no se valida.                             |
| `AccentColor`    | `string` | —              | Color de acento (`RJReport.Branding.AccentColor`). Se pasa tal cual; el formato hexadecimal lo valida `Send-RjRbReportEmail`.              |
| `TextColor`      | `string` | —              | Color de texto (`RJReport.Branding.TextColor`). El mismo tratamiento que `AccentColor`.                                                    |
| `TimeoutSec`     | `int`    | `30`           | Tiempo de espera de descarga por imagen.                                                                                                   |
| `MaxImageBytes`  | `long`   | `200 KB`       | Tamaño máximo de imagen aceptado. Las imágenes de marca comparten el límite de \~4 MB de `sendMail` con los archivos adjuntos del informe. |

## Salidas

Una `[hashtable]` que contiene solo las claves resueltas correctamente:

| Clave         | Valor                                               |
| ------------- | --------------------------------------------------- |
| `HeaderImage` | Ruta local de la imagen de encabezado descargada    |
| `FooterImage` | Ruta local de la imagen de pie de página descargada |
| `FooterLink`  | Enlace de pie de página recortado                   |
| `AccentColor` | Color de acento recortado                           |
| `TextColor`   | Color de texto recortado                            |

Cada clave se asigna a un parámetro de `Send-RjRbReportEmail`, lo que hace que el splatting sea seguro.

## Validación

Cada imagen pasa por las siguientes comprobaciones antes de ser aceptada:

| Comprobación      | Motivo del rechazo                                                                                                                                                                           |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Esquema de la URL | Solo `https` se acepta — los bytes de la imagen terminan dentro del correo de la empresa, así que HTTP en claro se rechaza.                                                                  |
| Descarga          | Las respuestas que no sean 2xx, los tiempos de espera y los errores de red se capturan; el cuerpo de la respuesta de un error de almacenamiento no se trata silenciosamente como una imagen. |
| Tamaño            | Los archivos vacíos y los archivos mayores que `MaxImageBytes` (predeterminado 200 KB).                                                                                                      |
| Firma del archivo | Los primeros bytes deben identificar un PNG, JPEG o GIF. Una página de error HTML guardada con un nombre `.png` se rechaza aquí.                                                             |

Al archivo temporal se le asigna la extensión que coincide con su formato **detectado** , porque `Send-RjRbReportEmail` a partir de ella deriva el tipo de contenido del adjunto; por lo tanto, una URL sin extensión de archivo, o con una engañosa, funciona correctamente.

## Notas de comportamiento

### Alojar las imágenes

La URL solo necesita ser accesible desde el sandbox de Azure Automation. Dos patrones comunes:

* **Blob público o CDN** — lo más sencillo, pero las imágenes pueden ser leídas por cualquiera.
* **Contenedor privado con un SAS Token en la URL** — el contenedor permanece privado y solo quienes tengan el enlace pueden leerlo. Recuerda que la expiración del SAS termina la marca en silencio: después de que caduque, los informes siguen llegando con los valores predeterminados de RealmJoin y el motivo solo es visible como una advertencia en el registro del trabajo.

### Limpieza de archivos temporales

Las imágenes descargadas se escriben en el directorio temporal del sandbox. El sandbox se descarta después de la ejecución, así que la limpieza es opcional, pero los runbooks con una sección explícita de limpieza deberían eliminarlas después del último correo electrónico:

```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
    }
}
```

### Diagnóstico de la marca que no aparece

Cuando un informe llega con los gráficos predeterminados aunque la marca esté configurada, el registro del trabajo identifica la etapa que falló:

| Entrada de registro                                                      | Causa                                                                                                                          |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| Sin `Marca:` ninguna entrada                                             | La configuración nunca llegó al runbook — comprueba el JSON de personalización y si el portal conoce esta versión del runbook. |
| `Solo se admiten URL HTTPS`                                              | La URL usa `http://`.                                                                                                          |
| Un error de almacenamiento como `PublicAccessNotPermitted`               | La solicitud llegó sin autenticación — falta el SAS Token en la URL, a menudo porque se truncó al copiarlo.                    |
| `supera el límite de … para imágenes insertadas en correos electrónicos` | El archivo es mayor que `MaxImageBytes`.                                                                                       |
| `no es una imagen PNG, JPEG o GIF`                                       | La descarga devolvió algo distinto de una imagen, normalmente una página de error.                                             |

## Ver también

* [Send-RjRbReportEmail](/es/dev-reference/report-functions/send-rjrbreportemail.md) — el consumidor de los parámetros devueltos.
* [Configuración de informes del runbook](/es/automatizacion/runbooks/runbook-report-settings.md#email-branding-optional) — configurando los `RJReport.Branding.*` ajustes como administrador.


---

# 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/es/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.
