This module is a wrapper to send emails, it uses nodemailer. This is a SMTP Implementation.
npm install --save @studiowebux/mailer
Official documentation : https://nodemailer.com/smtp/
const opts = {
isEnabled: true,
host: '127.0.0.1',
port: 2525,
secure: false,
auth: {
user: '',
pass: '',
},
pool: false,
tls: {
// do not fail on invalid certs
rejectUnauthorized: false,
},
};
The
isEnabled
parameter allows to deactivate the mailer service, that way it doesn't send all emails while doing tests.
Official documentation : https://nodemailer.com/message/
// NOTE : bcc field is not detected by the mailparser and/or the smtp-server
const data = {
from: 'test@from.local',
to: ['test1@to.local', 'test2@to.local'],
cc: ['test3@cc.local', 'test5@cc.local', 'test6@cc.local'],
bcc: ['test4@bcc.local'],
subject: 'Testing the webux mailer',
html: '<p>Hello World !</p>',
text: 'Hello World !',
};
Initializes the transporter and the logger function
Verifies the transporter configuration and authentication
webuxMailer
.Verify()
.then((info) => {
console.log(info);
})
.catch((e) => {
console.error(e);
});
Sends an email if the mailer is enabled
const data = {
from: 'test@from.local',
to: ['test1@to.local', 'test2@to.local'],
subject: 'Testing the webux mailer',
html: '<p>Hello World !</p>',
text: 'Hello World !',
};
webuxMailer
.Sendmail(data)
.then((info) => {
console.log(info);
})
.catch((e) => {
console.error(e);
});
For testing only, Check the examples/ directory for complete code.
example.js
const WebuxMailer = require('@studiowebux/mailer');
const opts = {
isEnabled: true,
host: process.env.HOST || '127.0.0.1',
port: 2525,
secure: false,
auth: {
user: process.env.USER || '',
pass: process.env.PASSWORD || '',
},
};
const webuxMailer = new WebuxMailer(opts, console);
const data = {
from: 'test@from.local',
to: ['test1@to.local', 'test2@to.local'],
subject: 'Testing the webux mailer',
html: '<p>Hello World !</p>',
text: 'Hello World !',
};
webuxMailer.Sendmail(data).then((info) => {
console.log(info);
});
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
SEE LICENSE IN license.txt