# Audit — Envois d'emails dans l'application ERP Immo

**Date :** 22 mai 2026  
**Dernière mise à jour :** 22 mai 2026 — refonte : 2 cas actifs uniquement  
**Périmètre :** code PHP applicatif (`app/`, `routes/`, jobs, commandes, notifications).

---

## Politique actuelle (refonte)

Seuls **deux** envois email sont **actifs** :

| Module | Destinataire | Canal | Config |
|--------|--------------|-------|--------|
| **Leads marketing (Meta)** | `commercial_user.email` du lead, sinon repli | Microsoft Graph applicatif | `config/leads_marketing.php` → `fallback_email` (`LEADS_FALLBACK_EMAIL`, défaut `aurelie.portales@hectare.fr`) |
| **Demandes fournisseurs** | `comptabilite@hectare.fr` (fixe) | Microsoft Graph applicatif | `config/notifications.php` → `fournisseurs_email` (`NOTIFICATIONS_FOURNISSEURS_EMAIL`) |

Les demandes fournisseurs conservent en parallèle la **notification cloche** (`NouvelleDemandeFournisseur`, canal `database`) pour les utilisateurs du groupe GS_COMPTABILITE.

Tous les autres envois historiques sont **désactivés** (early-return + `Log::info('Email désactivé pour [contexte]')`). La logique métier associée (workflows, alertes BDD, statuts TMA, etc.) reste inchangée.

---

## Envois actifs (détail)

| # | Fichier:Ligne | Déclencheur | Sujet | Statut |
|---|---------------|-------------|-------|--------|
| 1 | `app/Jobs/NotifyCommercialTeams.php:102` | Webhook Meta → `ProcessMetaLead` → `MetaLeadIngestionService` ; `POST /admin/leads-marketing/{lead}/retry-teams` ; `php artisan meta:simulate-lead` | `📢 Nouveau prospect : {nom} — {campagne}` | **Actif** — `emailsEnabled()` + token Graph + `teams_notified_at` null |
| 2 | `app/Http/Controllers/DemandeFournisseurController.php` (méthode `envoyerEmailComptabilite`) | `POST /demandes-fournisseurs` | `Nouvelle demande de création fournisseur : {nom}` | **Actif** — `emailsEnabled()` + `envoyerEmailApplicatif` |

---

## Envois désactivés

| Contexte | Fichier | Mécanisme désactivé | Log |
|----------|---------|---------------------|-----|
| Validation facture NV1 | `NotificationFactureService.php` | `envoyerEmail` | `Email désactivé pour [validation facture NV1]` — assignation `validateur_id` conservée |
| Validation facture NV2 / PDG | `NotificationFactureService.php` | `envoyerEmail` | `Email désactivé pour [validation facture NV2 / PDG]` — assignation `validateur_id` conservée |
| Validation facture comptabilité | `NotificationFactureService.php` | `envoyerEmail` | `Email désactivé pour [validation facture comptabilité]` |
| Relance validation facture | `NotificationFactureService.php` | `envoyerEmail` + incrément relances | `Email désactivé pour [relance validation facture]` |
| Alertes réservation acquéreur (ODF, accord, SRU, documents) | `AlerteService.php` | `Mail::raw` | `Email désactivé pour [alerte réservation acquéreur]` — alertes cloche conservées |
| Devis TMA client | `TMAController.php` | `envoyerEmail` | `Email désactivé pour [devis TMA client]` — passage statut « Envoyé » conservé |
| Échec synchro devis AO SharePoint | `UploadDevisToSharePoint.php` | `Mail::raw` | `Email désactivé pour [alerte SharePoint échec devis AO]` |
| Échec synchro document AO SharePoint | `UploadAoDocumentToSharePoint.php` | `Mail::raw` | `Email désactivé pour [alerte SharePoint échec document AO]` |

---

## Infrastructure

| Élément | Fichier | Rôle |
|---------|---------|------|
| `emailsEnabled()` | `app/Helpers/SettingHelper.php` | Toggle admin `settings.emails_enabled` — s'applique aux envois Graph actifs |
| `GraphApiService::envoyerEmailApplicatif` | `app/Services/GraphApiService.php` | Envoi jobs / demandes fournisseurs / leads Meta |
| `GraphApiService::envoyerEmail` | idem | Délégué ou applicatif — plus utilisé en production (TMA/factures désactivés) |
| Expéditeur | `AZURE_MAIL_EXPEDITEUR` | Mailbox Graph d'envoi |

---

## Variables d'environnement

| Variable | Usage |
|----------|--------|
| `LEADS_FALLBACK_EMAIL` | Repli commercial leads Meta |
| `NOTIFICATIONS_FOURNISSEURS_EMAIL` | Destinataire demandes fournisseurs |
| `AZURE_MAIL_EXPEDITEUR` | Expéditeur Graph |
| `settings.emails_enabled` (BDD) | Coupure globale des envois Graph |

---

## Historique

- **22/05/2026** — Audit initial (`docs/audit-emails.md` v1).
- **22/05/2026** — Refonte : conservation leads Meta + email compta fournisseurs ; désactivation factures, réservations, TMA, SharePoint AO.
