Graph mail test — récupération PJ Outlook (#874)
Bac à sable DSI. Appels Graph synchrone via PHP-FPM (token utilisateur délégué).
Aucun upload SharePoint. IDs en dur issus du drop Nouvel Outlook.
Page jetable — URL directe uniquement. Si step 0 indique Mail.Read absent :
ajouter le scope délégué côté Azure AD + se reconnecter à l’ERP (consentement),
puis recharger cette page.
@php
$verdict = (string) ($summary['verdict'] ?? '');
$summaryClass = str_starts_with($verdict, 'OK') ? 'ok' : (str_starts_with($verdict, 'PARTIEL') ? 'partial' : 'ko');
@endphp
{{ $verdict }}
Total : {{ $summary['total_ms'] ?? '—' }} ms —
Binaire : {{ !empty($summary['binary_recovered']) ? 'oui' : 'non' }}
@if (!empty($summary['binary_size']))
({{ $summary['binary_size'] }} octets
@if (!empty($summary['size_match'])) ✓ match {{ $summary['expected_size'] }} @else / attendu {{ $summary['expected_size'] }} @endif)
@endif
Mail.Read dans JWT : {{ !empty($summary['has_Mail.Read']) ? 'oui' : 'non' }} —
messageId résolu : {{ $summary['resolved_message_id'] ?? '—' }}
IDs testés
- latestItemId :
{{ $ids['latestItemId'] }}
- attachmentItemId :
{{ $ids['attachmentItemId'] }}
- Attendu : {{ $ids['expected_name'] }} — {{ $ids['expected_size'] }} octets
| # |
Étape |
OK |
HTTP |
ms |
Détail |
@foreach ($steps as $i => $step)
| {{ $i }} |
{{ $step['name'] }} |
{{ !empty($step['ok']) ? 'oui' : 'non' }} |
{{ $step['http_status'] ?? '—' }} |
{{ $step['ms'] ?? '—' }} |
{{ json_encode($step['detail'] ?? [], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) }} |
@endforeach
Recharger la page pour relancer tous les appels.
Après ajout Azure de Mail.Read : se déconnecter / reconnecter Microsoft avant de retester.