42 lines
1.1 KiB
JavaScript
Raw Normal View History

2018-07-24 10:28:44 +03:00
'use strict';
const nodeSES = require('node-ses');
2021-04-29 13:51:12 +02:00
const { removeUndefined } = require('@strapi/utils');
2018-07-24 10:28:44 +03:00
module.exports = {
init(providerOptions = {}, settings = {}) {
2022-08-08 15:50:34 +02:00
const client = nodeSES.createClient({ ...providerOptions });
2018-07-24 10:28:44 +03:00
return {
send(options) {
2018-07-24 10:28:44 +03:00
return new Promise((resolve, reject) => {
const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options;
2018-07-24 10:28:44 +03:00
2022-08-08 15:50:34 +02:00
const msg = {
from: from || settings.defaultFrom,
to,
cc,
bcc,
replyTo: replyTo || settings.defaultReplyTo,
subject,
altText: text,
message: html,
...rest,
2018-07-24 10:28:44 +03:00
};
2022-08-08 23:33:39 +02:00
client.sendEmail(removeUndefined(msg), (err) => {
2018-07-24 10:28:44 +03:00
if (err) {
if (err.Message) {
2022-08-08 23:33:39 +02:00
// eslint-disable-next-line prefer-promise-reject-errors
reject(`${err.Message} ${err.Detail ? err.Detail : ''}`);
}
reject(err);
2018-07-24 10:28:44 +03:00
} else {
resolve();
}
});
});
},
2018-07-24 10:28:44 +03:00
};
},
2018-07-24 10:28:44 +03:00
};