import nodemailer from 'nodemailer' const SMTP_HOST = (process.env.SMTP_HOST ?? '').trim() const SMTP_HOST_IS_PLACEHOLDER = SMTP_HOST === '' || SMTP_HOST.toLowerCase() === 'smtp.example.com' const transporter = nodemailer.createTransport({ host: SMTP_HOST, port: Number(process.env.SMTP_PORT) || 587, secure: process.env.SMTP_SECURE === 'true', auth: process.env.SMTP_USER ? { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS } : undefined, }) async function sendMailOrSkip(mailOptions: any, emailType: string) { if (SMTP_HOST_IS_PLACEHOLDER) { const target = typeof mailOptions?.to === 'string' ? mailOptions.to : 'unknown-recipient' console.warn(`[email] SMTP not configured. Skipping ${emailType} email to ${target}.`) return } await transporter.sendMail(mailOptions) } export async function sendMagicLinkEmail({ to, magicUrl, }: { to: string magicUrl: string }) { await sendMailOrSkip({ from: process.env.EMAIL_FROM ?? 'noreply@innungsapp.de', to, subject: 'Ihr Login-Link für InnungsApp', html: `
Klicken Sie auf den folgenden Button, um sich einzuloggen. Der Link ist 24 Stunden gültig.
Jetzt einloggenWenn Sie diesen Link nicht angefordert haben, können Sie diese E-Mail ignorieren.
InnungsApp · Die digitale Plattform für Innungen
Sie wurden von der ${orgName} zur InnungsApp eingeladen. InnungsApp ist die digitale Plattform Ihrer Innung für News, Termine und das Mitgliederverzeichnis.
Klicken Sie auf den Button, um Ihren Account zu aktivieren:
Jetzt Zugang aktivierenKein Passwort nötig — Sie erhalten einen sicheren Login-Link per E-Mail.
Sie wurden als Administrator für die ${orgName} in der InnungsApp freigeschaltet.
Ihre Zugangsdaten
E-Mail: ${to}
Passwort: ${password}
Klicken Sie auf den Button, um sich im Verwaltungsportal anzumelden. Sie werden aufgefordert, Ihr Passwort nach dem ersten Login zu ändern.
Zum Admin-PortalInnungsApp · Administrative Portal