Files
stechuhr3/backend/test-email.js

116 lines
4.1 KiB
JavaScript
Executable File

#!/usr/bin/env node
// Test E-Mail-Konfiguration
// Verwendung: node test-email.js "empfaenger@example.com"
require('dotenv').config();
const nodemailer = require('nodemailer');
const recipientEmail = process.argv[2] || 'tsschulz@gmx.net';
console.log('📧 Teste E-Mail-Konfiguration...');
console.log('');
console.log('SMTP-Server:', process.env.EMAIL_HOST);
console.log('Port:', process.env.EMAIL_PORT);
console.log('Secure:', process.env.EMAIL_SECURE);
console.log('User:', process.env.EMAIL_USER);
console.log('From:', process.env.EMAIL_FROM);
console.log('An:', recipientEmail);
console.log('');
// Erstelle Transporter
const transporter = nodemailer.createTransport({
host: process.env.EMAIL_HOST,
port: parseInt(process.env.EMAIL_PORT),
secure: process.env.EMAIL_SECURE === 'true',
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASSWORD
}
});
// Test-E-Mail senden
async function sendTestEmail() {
try {
console.log('🔄 Verbinde mit SMTP-Server...');
// Verify connection
await transporter.verify();
console.log('✅ SMTP-Verbindung erfolgreich!');
console.log('');
console.log('📤 Sende Test-E-Mail...');
const info = await transporter.sendMail({
from: `"${process.env.EMAIL_FROM_NAME || 'TimeClock'}" <${process.env.EMAIL_FROM}>`,
to: recipientEmail,
subject: 'TimeClock v3 - Test E-Mail',
text: `Dies ist eine Test-E-Mail von TimeClock v3.
Wenn du diese E-Mail erhältst, funktioniert die E-Mail-Konfiguration korrekt!
Gesendet am: ${new Date().toLocaleString('de-DE')}
---
TimeClock v3 Zeiterfassung
${process.env.FRONTEND_URL || 'https://stechuhr3.tsschulz.de'}
`,
html: `
<h2>TimeClock v3 - Test E-Mail</h2>
<p>Dies ist eine Test-E-Mail von TimeClock v3.</p>
<p><strong>Wenn du diese E-Mail erhältst, funktioniert die E-Mail-Konfiguration korrekt!</strong></p>
<p>Gesendet am: ${new Date().toLocaleString('de-DE')}</p>
<hr>
<p style="color: #666; font-size: 12px;">
TimeClock v3 Zeiterfassung<br>
<a href="${process.env.FRONTEND_URL || 'https://stechuhr3.tsschulz.de'}">${process.env.FRONTEND_URL || 'https://stechuhr3.tsschulz.de'}</a>
</p>
`
});
console.log('');
console.log('✅ E-Mail erfolgreich gesendet!');
console.log('');
console.log('Message ID:', info.messageId);
console.log('Response:', info.response);
console.log('');
console.log('🎉 E-Mail-Konfiguration funktioniert!');
console.log('');
console.log('📬 Prüfe dein E-Mail-Postfach:', recipientEmail);
console.log(' (inkl. Spam-Ordner)');
process.exit(0);
} catch (error) {
console.error('');
console.error('❌ Fehler beim E-Mail-Versand:');
console.error('');
console.error(error.message);
console.error('');
if (error.code === 'EAUTH') {
console.error('💡 SMTP-Authentifizierung fehlgeschlagen!');
console.error(' Prüfe EMAIL_USER und EMAIL_PASSWORD in .env');
} else if (error.code === 'ECONNECTION') {
console.error('💡 Verbindung zum SMTP-Server fehlgeschlagen!');
console.error(' Prüfe EMAIL_HOST und EMAIL_PORT in .env');
} else if (error.code === 'ETIMEDOUT') {
console.error('💡 Timeout beim Verbinden!');
console.error(' Prüfe Firewall-Einstellungen (Port', process.env.EMAIL_PORT, ')');
}
console.error('');
console.error('Aktuelle Konfiguration:');
console.error(' EMAIL_HOST:', process.env.EMAIL_HOST);
console.error(' EMAIL_PORT:', process.env.EMAIL_PORT);
console.error(' EMAIL_SECURE:', process.env.EMAIL_SECURE);
console.error(' EMAIL_USER:', process.env.EMAIL_USER);
console.error(' EMAIL_FROM:', process.env.EMAIL_FROM);
process.exit(1);
}
}
sendTestEmail();