/** * utils/mailer.js * Factory: seleziona il metodo di invio email corretto in base alla configurazione .env. * Priorità: Graph API (se AZURE_TENANT_ID configurato) → SMTP (se SMTP_HOST configurato) */ 'use strict'; function getMailer() { if (process.env.AZURE_TENANT_ID && process.env.AZURE_CLIENT_ID && process.env.AZURE_CLIENT_SECRET) { return require('./graphMailer'); } if (process.env.SMTP_HOST) { return require('./smtpMailer'); } throw new Error('[Mailer] Nessun metodo di invio email configurato. Impostare AZURE_TENANT_ID oppure SMTP_HOST nel .env.'); } /** * Invia una email usando il metodo configurato (Graph API o SMTP). * * @param {Object} options * @param {string[]} options.to * @param {string[]} [options.cc] * @param {string[]} [options.bcc] * @param {string} options.subject * @param {string} options.bodyHtml * @param {Array} [options.attachments] * @param {Array} [options.inlineImages] */ async function sendMail(options) { const mailer = getMailer(); return mailer.sendMail(options); } module.exports = { sendMail };