116 lines
4.1 KiB
JavaScript
Executable File
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();
|
|
|