195 lines
3.8 KiB
Markdown
195 lines
3.8 KiB
Markdown
# 🚀 Guide de déploiement DocV avec envoi d'emails
|
|
|
|
## 📋 Prérequis
|
|
|
|
### 1. Variables d'environnement
|
|
Configurez ces variables sur votre plateforme de déploiement :
|
|
|
|
\`\`\`env
|
|
SMTP_HOST=votre-serveur-smtp
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
SMTP_USER=votre-email@domaine.com
|
|
SMTP_PASSWORD=votre-mot-de-passe-application
|
|
SMTP_FROM=votre-email@domaine.com
|
|
\`\`\`
|
|
|
|
⚠️ **Important** : Utilisez toujours des mots de passe d'application, jamais vos mots de passe principaux.
|
|
|
|
## 🌐 Déploiement sur Vercel
|
|
|
|
### 1. Installation Vercel CLI
|
|
\`\`\`bash
|
|
npm i -g vercel
|
|
\`\`\`
|
|
|
|
### 2. Configuration des variables
|
|
\`\`\`bash
|
|
vercel env add SMTP_HOST
|
|
vercel env add SMTP_PORT
|
|
vercel env add SMTP_SECURE
|
|
vercel env add SMTP_USER
|
|
vercel env add SMTP_PASSWORD
|
|
vercel env add SMTP_FROM
|
|
\`\`\`
|
|
|
|
### 3. Déploiement
|
|
\`\`\`bash
|
|
vercel --prod
|
|
\`\`\`
|
|
|
|
## 🔧 Déploiement sur Netlify
|
|
|
|
### 1. Variables d'environnement
|
|
Dans le dashboard Netlify :
|
|
- Site settings > Environment variables
|
|
- Ajoutez toutes les variables SMTP
|
|
|
|
### 2. Build settings
|
|
\`\`\`toml
|
|
# netlify.toml
|
|
[build]
|
|
command = "npm run build"
|
|
publish = ".next"
|
|
|
|
[build.environment]
|
|
NODE_VERSION = "18"
|
|
\`\`\`
|
|
|
|
## 🐳 Déploiement Docker
|
|
|
|
### 1. Dockerfile
|
|
\`\`\`dockerfile
|
|
FROM node:18-alpine
|
|
|
|
WORKDIR /app
|
|
COPY package*.json ./
|
|
RUN npm ci --only=production
|
|
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
EXPOSE 3000
|
|
CMD ["npm", "start"]
|
|
\`\`\`
|
|
|
|
### 2. Variables d'environnement
|
|
\`\`\`bash
|
|
docker run -d \
|
|
-p 3000:3000 \
|
|
-e SMTP_HOST=votre-smtp-host \
|
|
-e SMTP_PORT=587 \
|
|
-e SMTP_USER=votre-email@domaine.com \
|
|
-e SMTP_PASSWORD=votre-mot-de-passe \
|
|
-e SMTP_FROM=votre-email@domaine.com \
|
|
docv-app
|
|
\`\`\`
|
|
|
|
## ✅ Test de l'envoi d'emails
|
|
|
|
### 1. Vérification des variables
|
|
\`\`\`bash
|
|
# Sur votre serveur
|
|
echo $SMTP_HOST
|
|
echo $SMTP_USER
|
|
\`\`\`
|
|
|
|
### 2. Test des formulaires
|
|
- Accédez à \`/contact\`
|
|
- Remplissez et envoyez le formulaire
|
|
- Vérifiez les logs serveur
|
|
- Vérifiez la réception dans votre boîte email
|
|
|
|
## 🔍 Debugging
|
|
|
|
### 1. Logs serveur
|
|
\`\`\`bash
|
|
# Vercel
|
|
vercel logs
|
|
|
|
# Netlify
|
|
netlify logs
|
|
|
|
# Docker
|
|
docker logs container-name
|
|
\`\`\`
|
|
|
|
### 2. Test SMTP manuel
|
|
\`\`\`javascript
|
|
// test-smtp.js
|
|
const nodemailer = require('nodemailer');
|
|
|
|
const transporter = nodemailer.createTransport({
|
|
host: process.env.SMTP_HOST,
|
|
port: process.env.SMTP_PORT,
|
|
secure: process.env.SMTP_SECURE === 'true',
|
|
auth: {
|
|
user: process.env.SMTP_USER,
|
|
pass: process.env.SMTP_PASSWORD,
|
|
},
|
|
});
|
|
|
|
transporter.sendMail({
|
|
from: process.env.SMTP_FROM,
|
|
to: 'test@example.com',
|
|
subject: 'Test SMTP',
|
|
text: 'Test de configuration SMTP'
|
|
}).then(() => {
|
|
console.log('✅ SMTP fonctionne');
|
|
}).catch(err => {
|
|
console.error('❌ Erreur SMTP:', err);
|
|
});
|
|
\`\`\`
|
|
|
|
## 🔐 Sécurité
|
|
|
|
### 1. Variables d'environnement
|
|
- ✅ Jamais dans le code source
|
|
- ✅ Configurées sur la plateforme de déploiement
|
|
- ✅ Différentes par environnement (dev/prod)
|
|
|
|
### 2. Mots de passe d'application
|
|
- ✅ Utilisez des mots de passe d'application
|
|
- ✅ Pas les mots de passe principaux des comptes
|
|
- ✅ Révocables si compromis
|
|
|
|
## 📧 Configuration par fournisseur
|
|
|
|
### Protonmail
|
|
\`\`\`env
|
|
SMTP_HOST=smtp.protonmail.ch
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
\`\`\`
|
|
|
|
### Gmail
|
|
\`\`\`env
|
|
SMTP_HOST=smtp.gmail.com
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
\`\`\`
|
|
|
|
### Serveur SMTP dédié
|
|
\`\`\`env
|
|
SMTP_HOST=mail.votre-domaine.com
|
|
SMTP_PORT=587
|
|
SMTP_SECURE=false
|
|
\`\`\`
|
|
|
|
## 🎯 Résultat attendu
|
|
|
|
Une fois déployé avec les bonnes variables :
|
|
- ✅ Formulaires fonctionnels
|
|
- ✅ Emails HTML formatés
|
|
- ✅ Réception dans votre boîte email
|
|
- ✅ Logs de confirmation
|
|
- ✅ Gestion d'erreurs robuste
|
|
|
|
## 📞 Support
|
|
|
|
En cas de problème :
|
|
1. Vérifiez les variables d'environnement
|
|
2. Consultez les logs serveur
|
|
3. Testez la configuration SMTP manuellement
|
|
4. Vérifiez les paramètres de votre fournisseur email
|