xpeditis2.0/apps/backend/test-smtp-simple.js
David d65cb721b5
Some checks are pending
CD Production (Hetzner k3s) / Promote Images (preprod → prod) (push) Waiting to run
CD Production (Hetzner k3s) / Deploy to k3s (xpeditis-prod) (push) Blocked by required conditions
CD Production (Hetzner k3s) / Smoke Tests (push) Blocked by required conditions
CD Production (Hetzner k3s) / Deployment Summary (push) Blocked by required conditions
CD Production (Hetzner k3s) / Notify Success (push) Blocked by required conditions
CD Production (Hetzner k3s) / Notify Failure (push) Blocked by required conditions
chore: sync full codebase from cicd branch
Aligns main with the complete application codebase (cicd branch).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:56:44 +02:00

75 lines
2.4 KiB
JavaScript

#!/usr/bin/env node
// Test SMTP ultra-simple pour identifier le problème
const nodemailer = require('nodemailer');
require('dotenv').config();
console.log('🔍 Test SMTP Simple\n');
console.log('Configuration:');
console.log(' SMTP_HOST:', process.env.SMTP_HOST || 'NON DÉFINI');
console.log(' SMTP_PORT:', process.env.SMTP_PORT || 'NON DÉFINI');
console.log(' SMTP_USER:', process.env.SMTP_USER || 'NON DÉFINI');
console.log(' SMTP_PASS:', process.env.SMTP_PASS ? '***' : 'NON DÉFINI');
console.log('');
const host = process.env.SMTP_HOST;
const port = parseInt(process.env.SMTP_PORT || '2525');
const user = process.env.SMTP_USER;
const pass = process.env.SMTP_PASS;
// Appliquer le même fix DNS que dans email.adapter.ts
const useDirectIP = host && host.includes('mailtrap.io');
const actualHost = useDirectIP ? '3.209.246.195' : host;
const serverName = useDirectIP ? 'smtp.mailtrap.io' : host;
console.log('Fix DNS:');
console.log(' Utilise IP directe:', useDirectIP);
console.log(' Host réel:', actualHost);
console.log(' Server name:', serverName);
console.log('');
const transporter = nodemailer.createTransport({
host: actualHost,
port,
secure: false,
auth: { user, pass },
tls: {
rejectUnauthorized: false,
servername: serverName,
},
connectionTimeout: 10000,
greetingTimeout: 10000,
socketTimeout: 30000,
dnsTimeout: 10000,
});
async function test() {
try {
console.log('Test 1: Vérification de la connexion...');
await transporter.verify();
console.log('✅ Connexion SMTP OK\n');
console.log('Test 2: Envoi d\'un email...');
const info = await transporter.sendMail({
from: 'noreply@xpeditis.com',
to: 'test@example.com',
subject: 'Test - ' + new Date().toISOString(),
html: '<h1>Test réussi!</h1><p>Ce message confirme que l\'envoi d\'email fonctionne.</p>',
});
console.log('✅ Email envoyé avec succès!');
console.log(' Message ID:', info.messageId);
console.log(' Response:', info.response);
console.log('');
console.log('✅ TOUS LES TESTS RÉUSSIS - Le SMTP fonctionne!');
process.exit(0);
} catch (error) {
console.error('❌ ERREUR:', error.message);
console.error(' Code:', error.code);
console.error(' Command:', error.command);
process.exit(1);
}
}
test();