mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
37 lines
1 KiB
JavaScript
37 lines
1 KiB
JavaScript
|
// @ts-check
|
||
|
const mailService = require('../mail');
|
||
|
const ghostMailer = new mailService.GhostMailer();
|
||
|
|
||
|
/*
|
||
|
* An email address
|
||
|
* @typedef { string } EmailAddress
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* An object representing an email to send
|
||
|
* @typedef { Object } Email
|
||
|
* @property { string } html - The html content of the email
|
||
|
*/
|
||
|
|
||
|
module.exports = {
|
||
|
/**
|
||
|
* @param {Email} message - The message to send
|
||
|
* @param {[EmailAddress]} recipients - the recipients to send the email to
|
||
|
* @returns {Promise<boolean>} A promise representing the success of the email sending
|
||
|
*/
|
||
|
async send(message, recipients) {
|
||
|
for (const recipient in recipients) {
|
||
|
const messageToSend = Object.assign({}, message, {
|
||
|
to: recipient
|
||
|
});
|
||
|
try {
|
||
|
await ghostMailer.send(messageToSend);
|
||
|
} catch (err) {
|
||
|
// @TODO log this somewhere with state?
|
||
|
console.log(`Oh no! an email failed to send :( ${recipient}`);
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|