# Formulaire de contact — envoi d'email

## Ce qui a été ajouté

- `src/EnvLoader.php` — charge le fichier `.env` (aucune dépendance externe).
- `src/SmtpMailer.php` — petit client SMTP maison (connexion SSL sur le port 465, `AUTH LOGIN`) pour envoyer l'email via Hostinger. Pas besoin de PHPMailer.
- `public/contact.php` — le endpoint qui reçoit la soumission du formulaire, valide les champs, puis envoie l'email.
- `sysvote.html` — le formulaire pointe maintenant vers `contact.php` via `fetch()`, affiche un message de succès ou d'erreur, et inclut un champ "honeypot" caché contre les robots spammeurs.

## Structure attendue sur le serveur

```
/                       (racine du projet)
├── .env                (déjà en place — NE JAMAIS committer)
├── .gitignore
├── composer.json
├── src/
│   ├── EnvLoader.php
│   └── SmtpMailer.php
├── vendor/              (généré par `composer install`)
└── public/              (racine web — c'est CE dossier qui doit être pointé par ton hébergeur)
    ├── contact.php
    └── sysvote.html      (à déplacer/copier ici)
```

**Important : `public/` doit être le document root de ton hébergement**, et `contact.php` / `sysvote.html` doivent être au même niveau (côte à côte), sinon corrige le chemin `fetch('contact.php', ...)` dans le HTML ou le chemin `require __DIR__ . '/../vendor/autoload.php'` dans `contact.php`.

Si tu préfères garder `sysvote.html` à la racine plutôt que dans `public/`, dis-le-moi et j'ajuste les chemins en conséquence.

## Étapes de mise en place

1. Copie `.env` à la racine du projet (déjà fait, garde-le hors de Git — `.gitignore` l'exclut déjà).
2. Depuis la racine du projet, lance :
   ```bash
   composer install
   ```
   (Génère `vendor/autoload.php` requis par `contact.php`, même sans dépendance externe.)
3. Vérifie que `contact.php` et `sysvote.html` sont accessibles publiquement au même chemin relatif.
4. Teste le formulaire : remplis-le et soumets. Tu dois recevoir un email à l'adresse `MAIL_TO` (ou `MAIL_USER` par défaut) avec le nom, l'organisation, le courriel et le message du visiteur, et le champ **Répondre à** pré-rempli avec l'adresse du visiteur.

## Notes

- Le port `465` utilise SSL implicite (c'est ce que fait `SmtpMailer` automatiquement). Si jamais Hostinger te fait passer au port `587`, le mailer gère aussi le `STARTTLS` — il suffit de changer `MAIL_PORT=587` dans `.env`.
- En cas d'échec d'envoi, l'erreur est loggée côté serveur (`error_log`) et l'utilisateur voit un message générique — pense à consulter les logs PHP de ton hébergeur si un test échoue.
- Le champ caché `website` est un piège à robots (honeypot) : s'il est rempli, la requête est silencieusement ignorée (on répond quand même "succès" pour ne pas éduquer les bots).
