e1f8576b95
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
31 lines
868 B
JavaScript
31 lines
868 B
JavaScript
const nodemailer = require('nodemailer');
|
|
|
|
function createTransport(env = process.env) {
|
|
return nodemailer.createTransport({
|
|
host: env.SMTP_HOST,
|
|
port: Number(env.SMTP_PORT || 587),
|
|
secure: Number(env.SMTP_PORT) === 465,
|
|
auth: env.SMTP_USER ? { user: env.SMTP_USER, pass: env.SMTP_PASS } : undefined,
|
|
});
|
|
}
|
|
|
|
function formatPrice(value) {
|
|
return value.toFixed(2).replace('.', ',');
|
|
}
|
|
|
|
async function sendPriceChangeEmail(transport, { from, to, name, url, oldPrice, newPrice }) {
|
|
await transport.sendMail({
|
|
from,
|
|
to,
|
|
subject: `Prijs gewijzigd: ${name}`,
|
|
text: [
|
|
`De prijs van "${name}" is gewijzigd.`,
|
|
`Oude prijs: €${formatPrice(oldPrice)}`,
|
|
`Nieuwe prijs: €${formatPrice(newPrice)}`,
|
|
`Link: ${url}`,
|
|
].join('\n'),
|
|
});
|
|
}
|
|
|
|
module.exports = { createTransport, sendPriceChangeEmail, formatPrice };
|