Files
miriamgemeinde/config/email.js

80 lines
2.8 KiB
JavaScript

const nodemailer = require('nodemailer');
// E-Mail-Konfiguration
const smtpConfig = {
host: process.env.SMTP_HOST || 'smtp.1blu.de',
port: process.env.SMTP_PORT || 465,
secure: true, // true für 465, false für andere Ports
auth: {
user: process.env.SMTP_USER || 'e226079_0-kontakt',
pass: process.env.SMTP_PASS || 'aNN31bll3Na!'
}
};
// Debug-Logging der SMTP-Konfiguration
console.log('=== SMTP CONFIGURATION DEBUG ===');
console.log('Host:', smtpConfig.host);
console.log('Port:', smtpConfig.port);
console.log('Secure:', smtpConfig.secure);
console.log('User:', smtpConfig.auth.user);
console.log('Pass:', smtpConfig.auth.pass.replace(/./g, '*')); // Passwort maskieren
console.log('Environment Variables:');
console.log(' SMTP_HOST:', process.env.SMTP_HOST || 'undefined');
console.log(' SMTP_PORT:', process.env.SMTP_PORT || 'undefined');
console.log(' SMTP_USER:', process.env.SMTP_USER || 'undefined');
console.log(' SMTP_PASS:', process.env.SMTP_PASS ? '***' : 'undefined');
console.log('================================');
const transporter = nodemailer.createTransport(smtpConfig);
// E-Mail-Template für Passwort-Reset
const getPasswordResetEmailTemplate = (resetUrl, userName) => {
return {
subject: 'Passwort zurücksetzen - Miriam Gemeinde',
html: `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
<h2 style="color: #333;">Passwort zurücksetzen</h2>
<p>Hallo ${userName},</p>
<p>Sie haben eine Anfrage zum Zurücksetzen Ihres Passworts gestellt.</p>
<p>Klicken Sie auf den folgenden Link, um ein neues Passwort zu erstellen:</p>
<p style="margin: 20px 0;">
<a href="${resetUrl}"
style="background-color: #007bff; color: white; padding: 12px 24px; text-decoration: none; border-radius: 4px; display: inline-block;">
Passwort zurücksetzen
</a>
</p>
<p>Dieser Link ist 1 Stunde gültig.</p>
<p>Falls Sie diese Anfrage nicht gestellt haben, können Sie diese E-Mail ignorieren.</p>
<hr style="margin: 30px 0; border: none; border-top: 1px solid #eee;">
<p style="color: #666; font-size: 12px;">
Miriam Gemeinde<br>
Diese E-Mail wurde automatisch generiert.
</p>
</div>
`,
text: `
Passwort zurücksetzen - Miriam Gemeinde
Hallo ${userName},
Sie haben eine Anfrage zum Zurücksetzen Ihres Passworts gestellt.
Klicken Sie auf den folgenden Link, um ein neues Passwort zu erstellen:
${resetUrl}
Dieser Link ist 1 Stunde gültig.
Falls Sie diese Anfrage nicht gestellt haben, können Sie diese E-Mail ignorieren.
---
Miriam Gemeinde
Diese E-Mail wurde automatisch generiert.
`
};
};
module.exports = {
transporter,
getPasswordResetEmailTemplate
};