# Configuration Email - Bluehost SMTP ## 🔧 Configuration Bluehost dans `.env` Ajoutez ou modifiez ces lignes dans `api/.env` : ```env # Type de mailer MAIL_MAILER=smtp # Serveur SMTP Bluehost MAIL_HOST=smtp.bluehost.com MAIL_PORT=587 # Authentification (utilisez votre email Bluehost complet) MAIL_USERNAME=votre_email@votre-domaine.com MAIL_PASSWORD=votre_mot_de_passe_email # Chiffrement TLS (recommandĂ© pour le port 587) MAIL_ENCRYPTION=tls # Adresse et nom de l'expĂ©diteur MAIL_FROM_ADDRESS=noreply@sommet-francophone.org MAIL_FROM_NAME="Sommet Francophone" ``` ## 📝 Exemple complet ```env MAIL_MAILER=smtp MAIL_HOST=smtp.bluehost.com MAIL_PORT=587 MAIL_USERNAME=contact@sommet-francophone.org MAIL_PASSWORD=votre_mot_de_passe MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS="noreply@sommet-francophone.org" MAIL_FROM_NAME="Sommet Francophone" ``` ## ⚙ ParamĂštres Bluehost ### Ports disponibles - **Port 587** (TLS) - **RecommandĂ©** : Port standard pour SMTP avec authentification - **Port 465** (SSL) : Alternative si le port 587 ne fonctionne pas - **Port 25** : Non recommandĂ© (souvent bloquĂ©) ### Configuration avec port 465 (SSL) Si le port 587 ne fonctionne pas, essayez : ```env MAIL_MAILER=smtp MAIL_HOST=smtp.bluehost.com MAIL_PORT=465 MAIL_USERNAME=votre_email@votre-domaine.com MAIL_PASSWORD=votre_mot_de_passe MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS="noreply@sommet-francophone.org" MAIL_FROM_NAME="Sommet Francophone" ``` ## ✅ Étapes de configuration ### 1. RĂ©cupĂ©rer les identifiants Bluehost 1. Connectez-vous Ă  votre compte Bluehost 2. Allez dans **Email Accounts** (Comptes email) 3. Notez : - L'adresse email complĂšte (ex: `contact@sommet-francophone.org`) - Le mot de passe de l'email ### 2. Modifier le fichier `.env` Ouvrez `api/.env` et ajoutez/modifiez les variables `MAIL_*` comme indiquĂ© ci-dessus. ### 3. Vider le cache ```bash cd api php artisan config:clear php artisan config:cache ``` ### 4. Tester la configuration #### Option A : Via Tinker ```bash php artisan tinker ``` Puis : ```php use Illuminate\Support\Facades\Mail; Mail::raw('Test email depuis Laravel', function ($message) { $message->to('votre-email-personnel@example.com') ->subject('Test Email Bluehost'); }); ``` #### Option B : CrĂ©er une route de test (temporaire) Dans `routes/api.php` (Ă  supprimer aprĂšs test) : ```php Route::get('/test-email-bluehost', function () { try { \Illuminate\Support\Facades\Mail::raw('Test email depuis Laravel avec Bluehost', function ($message) { $message->to('votre-email-personnel@example.com') ->subject('Test Email Bluehost'); }); return response()->json(['message' => 'Email envoyĂ© avec succĂšs via Bluehost']); } catch (\Exception $e) { return response()->json([ 'error' => $e->getMessage(), 'file' => $e->getFile(), 'line' => $e->getLine(), ], 500); } }); ``` Puis tester : `GET http://localhost:8000/api/test-email-bluehost` ## 🔐 SĂ©curitĂ© - PLAIN/LOGIN avec TLS/SSL **Important** : Si vous voyez "PLAIN" ou "LOGIN" dans les logs, c'est **normal et sĂ©curisĂ©** ! - Ces mĂ©thodes d'authentification sont **chiffrĂ©es** quand vous utilisez `MAIL_ENCRYPTION=tls` ou `ssl` - Toute la communication (y compris l'authentification) passe dans un **tunnel chiffrĂ©** - C'est la mĂ©thode standard utilisĂ©e par tous les serveurs SMTP (Gmail, Outlook, etc.) - **Ce n'est PAS** du plain text si TLS/SSL est activĂ© **Analogie** : C'est comme envoyer une lettre dans une enveloppe scellĂ©e (TLS) plutĂŽt que sur une carte postale. ## 🔍 DĂ©pannage ### Erreur 535 : "Incorrect authentication data" **Causes possibles** : 1. Mot de passe incorrect 2. Nom d'utilisateur incorrect (doit ĂȘtre l'email complet) 3. Serveur SMTP incorrect 4. Compte email n'existe pas dans Bluehost **Solutions** : 1. VĂ©rifier que le compte email existe dans Bluehost 2. VĂ©rifier le mot de passe (rĂ©initialiser si nĂ©cessaire) 3. Utiliser l'email complet pour `MAIL_USERNAME` (ex: `contact@haggai-bf.org`) 4. Tester avec un client email (Thunderbird/Outlook) pour vĂ©rifier les identifiants 5. Essayer `smtp.bluehost.com` au lieu de `mail.votre-domaine.com` **Voir le guide complet** : `DEPANNAGE_EMAIL_BLUEHOST.md` ### Erreur : "Connection timeout" **Solutions** : 1. VĂ©rifiez que le port 587 n'est pas bloquĂ© par votre firewall 2. Essayez le port 465 avec SSL 3. VĂ©rifiez que `MAIL_HOST=smtp.bluehost.com` est correct ### Erreur : "Authentication failed" **Solutions** : 1. VĂ©rifiez que `MAIL_USERNAME` est l'email complet (ex: `contact@votre-domaine.com`) 2. VĂ©rifiez que `MAIL_PASSWORD` est correct 3. Assurez-vous que le compte email existe dans Bluehost ### Erreur : "Could not authenticate" **Solutions** : 1. VĂ©rifiez que l'authentification SMTP est activĂ©e dans Bluehost 2. Essayez de vous connecter manuellement avec un client email (Thunderbird, Outlook) pour vĂ©rifier les identifiants 3. VĂ©rifiez que le domaine est bien configurĂ© dans Bluehost ### Erreur : "Connection refused" **Solutions** : 1. VĂ©rifiez que le serveur SMTP Bluehost est accessible 2. Essayez `ping smtp.bluehost.com` pour vĂ©rifier la connectivitĂ© 3. VĂ©rifiez les paramĂštres de firewall ## 📊 VĂ©rifier les logs Si l'email Ă©choue, vĂ©rifiez les logs Laravel : ```bash tail -f api/storage/logs/laravel.log ``` Cherchez les erreurs liĂ©es Ă  `Mail` ou `SMTP`. ## 🔐 SĂ©curitĂ© **Important** : Ne commitez jamais le fichier `.env` dans Git. Il contient des mots de passe sensibles. Le fichier `.env` devrait ĂȘtre dans `.gitignore` (ce qui est normalement le cas par dĂ©faut dans Laravel). ## 📝 Notes importantes 1. **MAIL_FROM_ADDRESS** : Doit ĂȘtre une adresse email valide sur votre domaine Bluehost 2. **MAIL_USERNAME** : Utilisez l'email complet, pas juste le nom d'utilisateur 3. **Limites Bluehost** : VĂ©rifiez les limites d'envoi d'emails de votre plan Bluehost (gĂ©nĂ©ralement 500 emails/heure) ## 🚀 Production Une fois que la configuration fonctionne en dĂ©veloppement, vous pouvez utiliser les mĂȘmes paramĂštres en production, ou configurer un service dĂ©diĂ© comme SendGrid/Mailgun pour de meilleures performances. --- **Document créé le** : 2026-01-XX