@m-ld/gateway
Version:
m-ld gateway for services
34 lines • 2.76 kB
JavaScript
import nodemailer from 'nodemailer';
import LOG from 'loglevel';
export const logNotifier = {
async sendActivationCode(email, activationCode) {
LOG.info(`Activation code for ${email}: ${activationCode}`);
}
};
export class SmtpNotifier {
/**
* @param options SMTP options
* @param name gateway domain, used as a default self hostname
* @see https://community.nodebb.org/post/81300
*/
constructor({ smtp: options, '@domain': name }) {
this.transporter = nodemailer.createTransport({ name, ...options });
this.from = options?.from;
const address = typeof options?.from == 'object' ?
options.from.address : options?.from;
let [, domain] = address?.match(/@(\w+)/) || [];
this.domain = domain || 'm-ld-gateway';
}
sendActivationCode(email, activationCode) {
return this.transporter.sendMail({
from: this.from,
to: email,
subject: `Hi from ${this.domain}`,
text: `Your activation code is ${activationCode}\n\n` +
'This code is usable for the next 10 minutes.\n' +
'Cheers,\n' +
`the ${this.domain} team`
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL05vdGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sVUFBMkIsTUFBTSxZQUFZLENBQUM7QUFHckQsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBUTNCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBYTtJQUNuQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBYSxFQUFFLGNBQXNCO1FBQzVELEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEtBQUssS0FBSyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRixDQUFBO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFLdkI7Ozs7T0FJRztJQUNILFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBRzNDO1FBQ0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDMUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYSxFQUFFLGNBQXNCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsRUFBRSxFQUFFLEtBQUs7WUFDVCxPQUFPLEVBQUUsV0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksRUFBRSwyQkFBMkIsY0FBYyxNQUFNO2dCQUNuRCxnREFBZ0Q7Z0JBQ2hELFdBQVc7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxPQUFPO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9