{{-- Un message reçu, ouvert depuis la boîte de réception. Le HTML a été nettoyé au rangement (liste de balises fermée, aucun script) ; les images distantes restent bloquées tant que le lecteur ne les demande pas — elles servent au pistage. Les pièces jointes passent par une route authentifiée sur le disque privé, jamais servies brutes. --}} @php use App\Domaines\Courrier\Support\NettoyeurHtmlEntrant; $html = NettoyeurHtmlEntrant::pourAffichage((string) $courrier->corps_html, $avecImages); $contientImagesDistantes = preg_match('/]*\bsrc\s*=\s*["\'](?!data:)/i', (string) $courrier->corps_html) === 1; @endphp

De : {{ $courrier->expediteur }}

Reçu le : {{ $courrier->created_at?->format('d/m/Y à H:i') }}

@if ($courrier->client)

Dossier : {{ $courrier->client->raison_sociale }}

@endif
@if ($contientImagesDistantes && ! $avecImages) @endif
{!! $html !!}
@if (($courrier->pieces_meta ?? []) !== [])

Pièces jointes

    @foreach ($courrier->pieces_meta as $index => $piece) @php // v1.9.1 §E — la pièce sort par le geste unique : la // feuille de partage native sur téléphone, le // téléchargement classique sur ordinateur. Une // navigation vers un « attachment » n'aboutit à rien // en PWA iOS. $sortiePiece = \App\Support\SortieDocument::gestionnaire( route('courrier.piece', ['courrier' => $courrier, 'index' => $index], absolute: false), (string) $piece['nom'], ); @endphp
  • @if ($piece['chemin'] ?? null) @else {{ $piece['nom'] }} — au-delà du plafond de relève, récupération à la demande @endif {{ $piece['taille'] > 0 ? number_format($piece['taille'] / 1024, 0, ',', ' ').' Ko' : '' }}
  • @endforeach
@endif