36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
/**
|
|
* 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 };
|