Get-RjRbBrandingMailParams
Resuelve la configuración del tenant 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 y Send-RjRbReportEmail: 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
$brandingMailParams = Get-RjRbBrandingMailParams `
-HeaderImageUrl $BrandingHeaderImageUrl `
-FooterImageUrl $BrandingFooterImageUrl `
-FooterLink $BrandingFooterLink `
-AccentColor $BrandingAccentColor `
-TextColor $BrandingTextColor
Send-RjRbReportEmail `
-EmailFrom $EmailFrom `
-EmailTo $EmailTo `
-Subject $Subject `
-MarkdownContent $reportMd `
@brandingMailParamsSin 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.
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:
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:
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:
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ó:
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 — el consumidor de los parámetros devueltos.
Configuración de informes del runbook — configurando los
RJReport.Branding.*ajustes como administrador.
Última actualización
¿Te fue útil?